C# 日期时间解析精确

C# 日期时间解析精确,c#,parsing,datetime,datetime-format,C#,Parsing,Datetime,Datetime Format,我正在尝试将日期格式从“4/01/2013 0:00:00”更改为“01/4/2013 00:00:00” 不管我得到什么 “字符串未重新编码为有效的日期时间。” 您的年份部分是yy,但应该是yyy,因为您使用的是4位数的年份。 此外,小写字母m表示分钟,而不是月份,在大写字母m中表示月份。您的代码应该如下所示: string fromDate = "4/01/2013 0:00:00"; DateTime dt = DateTime.ParseExact(fromDate, "M/dd/yyy

我正在尝试将日期格式从
“4/01/2013 0:00:00”
更改为
“01/4/2013 00:00:00”

不管我得到什么

“字符串未重新编码为有效的日期时间。”


您的年份部分是
yy
,但应该是
yyy
,因为您使用的是4位数的年份。 此外,小写字母
m
表示分钟,而不是月份,在大写字母
m
中表示月份。您的代码应该如下所示:

string fromDate = "4/01/2013 0:00:00";
DateTime dt = DateTime.ParseExact(fromDate, "M/dd/yyyy H:mm:ss", CultureInfo.InvariantCulture);
string formattedDate = dt.ToString("dd/M/yyyy HH:mm:ss");

您正在执行
fromDate.ToString()
,如果
fromDate
已经是一个字符串,您不必调用
ToString
,如果它是一个日期类型,那么您不必解析它,而是可以直接格式化它。

如果
fromDate
已经是一个字符串,为什么
ToString
?您的问题是解析到日期还是从日期获取字符串?这里的月份和日期:
4/01
/
01/4
(您可以选择更好的示例日期)?@TimSchmelter更重要的是,如果fromDate已经是一个日期,为什么要经历所有这些麻烦,而您可以使用ToString和一种格式开始呢?为什么会有这么多的反对票?这是一个很有道理的问题。有时我觉得社区对“新手”有偏见。
string fromDate = "4/01/2013 0:00:00";
DateTime dt = DateTime.ParseExact(fromDate, "M/dd/yyyy H:mm:ss", CultureInfo.InvariantCulture);
string formattedDate = dt.ToString("dd/M/yyyy HH:mm:ss");