我无法弄明白,我哪里出错了?
我得到了以下日期时间字符串,需要将其解析为datetime:
string timestr = "1/20/2014 12:05:16 AM"
我试图像这样解析它:
DateTime.ParseExact( timestr,
"MM/dd/yyyy hh:mm:ss tt",
null);
尝试这样做时会返回
“字符串未被识别为有效的DateTime”
任何提示?
答案 0 :(得分:12)
MM
适用于01
到12
使用M
代替1
到12
。
string timestr = "1/20/2014 12:05:16 AM";
var date = DateTime.ParseExact(timestr,
"M/dd/yyyy hh:mm:ss tt",
CultureInfo.InvariantCulture);
Console.WriteLine(date);
输出将是;
1/20/2014 12:05:16 AM
这里有 demonstration
。
有关更多信息,请查看;
还要注意小时格式。 hh
适用于01
至12
,HH
适用于00
至23
。如果您的小时为13
,则14
或15
等。hh
格式将失败。
由于您在null
方法中使用IFormatProvider
作为DateTime.ParseExact
,这意味着它默认使用CurrentCulture
。如果DateSeparator
不是/
,则您的方法会引发FormatException
甚至您的字符串和格式完全匹配,因为"/"
format specifier在自定义中具有特殊含义日期和时间格式如; 替换我当前的文化或提供的文化日期分隔符
答案 1 :(得分:0)
你试过吗
DateTime returnedDate = new DateTime();
DateTime.TryParse(timestr, out returnedDate);
答案 2 :(得分:0)
M
- 月份,从1到12。
“M”自定义格式说明符将月份表示为1到12之间的数字(对于有13个月的日历,表示1到13之间的数字)。格式化一位数的月份没有前导零。
DateTime.ParseExact( timestr,"M/dd/yyyy hh:mm:ss tt",CultureInfo.InvariantCulture);
答案 3 :(得分:0)
请尝试
string timestr = "1/20/2014 12:05:16 AM";
DateTime dt = new DateTime();
DateTime.TryParse(timestr, out dt);
答案 4 :(得分:-2)
试试这个:
this.RequestDate = Convert.ToDateTime(this.DcmCreateDate).ToString("dd/MM/yyyy");