DateTime.Parse DD / MM / YYYY 24小时时钟

时间:2012-04-26 00:46:12

标签: .net datetime

DateTime.Parse失败

 15/08/2000 16:58

有什么想法?

我需要解析日期并获得一些国际化。

DD / MM / YYYY不会翻到24小时

MM / DD / YYYY将接受24小时制

15/08/2000 4:58 PM将解析

从Kibbee的回答中我看到了使用其他文化。 我使用正则表达式来确定它是否是dd / MM,如果是,请使用culture fr-FR。

2 个答案:

答案 0 :(得分:30)

尝试DateTime.ParseExact()

var result = DateTime.ParseExact(dateString,
                                 "dd/MM/yyyy HH:mm",
                                 new CultureInfo("en-US"));

答案 1 :(得分:13)

如果您知道日期所在的确切格式,则应该使用DateTime.ParseExact来解析日期。出于您的目的,以下内容可能会有效。

string dateString, format;  
DateTime result;
CultureInfo provider = CultureInfo.InvariantCulture;

dateString = "15/08/2000 16:58"
format = "dd/MM/yyyy HH:mm"
result = DateTime.ParseExact(dateString, format, provider);

更改为上述内容。将hh更改为HH,因为HH表示24小时时间。如果您不使用前导零,则只需使用H.有关创建格式字符串see this article的更多信息。

同样来自链接的MSDN文章,似乎格式“g”应该有效。

dateString = "15/06/2008 08:30";
format = "g";
CultureInfo provider = new CultureInfo("fr-FR");
DateTime result = DateTime.ParseExact(dateString, format, provider);