C# 在c中将字符串转换为日期时间时出错

C# 在c中将字符串转换为日期时间时出错,c#,wpf,C#,Wpf,我有一个DateTime,我试图将它转换为字符串,然后将它转换回DateTime以格式化它。 但我一直得到字符串未被识别为有效的datetime字符串。 有什么想法吗 var data = list_2.Entries.Select(c => new clients { code = cli_code, last_backup = c.Name, last_backup_date = c.AsFile.ClientModified.ToLocalTime() }).LastOrDefaul

我有一个DateTime,我试图将它转换为字符串,然后将它转换回DateTime以格式化它。 但我一直得到字符串未被识别为有效的datetime字符串。 有什么想法吗

var data = list_2.Entries.Select(c => new clients { code = cli_code, last_backup = c.Name, last_backup_date = c.AsFile.ClientModified.ToLocalTime() }).LastOrDefault(); 
var last_backup_date = data.last_backup_date;
var last_backup_date_string = Convert.ToString(last_backup_date);
var last_backup_date_formatted = DateTime.ParseExact(last_backup_date_string, "dd/MM/yyyy HH:MM:ss", CultureInfo.InvariantCulture);
var today_date = DateTime.Today;
你能试试这个吗

Var last_backup_date_string=last_backup_date.ToStringdd/MM/yyyy HH:MM:ss,CultureInfo.InvariantCulture

您能试试吗

Var last_backup_date_string=last_backup_date.ToStringdd/MM/yyyy HH:MM:ss,CultureInfo.InvariantCulture

既然您已经有了日期时间,您可以将其格式化:

string s = last_backup_date.ToString("dd/MM/yyyy", System.Globalization.CultureInfo.InvariantCulture);
无需先将其转换为字符串,然后再尝试将其转换回DateTime。DateTime对象本身没有特定的格式。

既然您已经有了DateTime,您可以将其格式化:

string s = last_backup_date.ToString("dd/MM/yyyy", System.Globalization.CultureInfo.InvariantCulture);

无需先将其转换为字符串,然后再尝试将其转换回DateTime。DateTime对象本身没有特定的格式。

根据您掌握的信息,转换不应该是一个问题。然而,问题可能在你的大脑中。当前日期格式以月开始,而不是以日开始。您应该能够以自己喜欢的方式进行格式显示

Console.WriteLine($"{date.ToString("dd/MM/yyyy")}");
Console.WriteLine($"{date.ToString("MMMM dd, yyyy")}");
Console.WriteLine($"{date.ToString("MM-dd-yyyy")}");
否则,您可以使用DateTime.Parse方法或DateTime.TryParse,这样就不必指定区域性变体

例如:

DateTime date;
var current = DateTime.Now.ToString();
if(DateTime.TryParse(current, out date))
     Console.WriteLine(date);

根据您掌握的信息,转换不应成为问题。然而,问题可能在你的大脑中。当前日期格式以月开始,而不是以日开始。您应该能够以自己喜欢的方式进行格式显示

Console.WriteLine($"{date.ToString("dd/MM/yyyy")}");
Console.WriteLine($"{date.ToString("MMMM dd, yyyy")}");
Console.WriteLine($"{date.ToString("MM-dd-yyyy")}");
否则,您可以使用DateTime.Parse方法或DateTime.TryParse,这样就不必指定区域性变体

例如:

DateTime date;
var current = DateTime.Now.ToString();
if(DateTime.TryParse(current, out date))
     Console.WriteLine(date);


你能添加last_backup_date_string的值吗?是的,当然,一个迷你可以将数据的输出放入。last_backup_date如果你愿意,我们需要看看last_backup_date看起来如何的示例var last_backup_date=data的实际数据类型是什么。last_backup_date;因为您需要使用以下行将其转换为字符串convert.ToStringlast_backup_date?你能添加last_backup_date_string的值吗?是的,当然,一个迷你可以将数据的输出放入。last_backup_date如果你愿意,我们需要看看last_backup_date看起来如何的示例var last_backup_date=data的实际数据类型是什么。last_backup_date;因为您需要使用以下行将其转换为字符串convert.ToStringlast_backup_date?字符串已格式化,但日期时间将继续same@MatthewAlmeida:DateTime对象没有特定格式…字符串已格式化,但DateTime继续same@MatthewAlmeida:DateTime对象没有特定的格式…是的,但这会将我的DateTime保留为字符串,因此我无法在DataGrid上对其进行排序。你是什么意思?如何将其转换为字符串和从字符串转换回字符串会有什么不同?@MatthewAlmeida-您需要在winforms中的datagridcolumn上应用datetime对象的格式,例如。只有在您需要的情况下,才可以在DataGrid中对其进行格式化。@mm8直截了当地说,请告诉我。回答得好。是的,但是我的datetime是一个字符串,因此我不能在我的DataGrid上排序。你是什么意思?如何将其转换为字符串和从字符串转换回字符串会有什么不同?@MatthewAlmeida-您需要在winforms中的datagridcolumn上应用datetime对象的格式,例如。只有在您需要的情况下,才可以在DataGrid中对其进行格式化。@mm8直截了当地说,请告诉我。回答得好。