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

pap*_*zzo 11 .net datetime

DateTime.Parse失败

 15/08/2000 16:58
Run Code Online (Sandbox Code Playgroud)

有什么想法吗?

我需要解析日期并获得一些国际性的.

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

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

2000年8月15日下午4:58将解析

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

Jus*_*ner 31

试试DateTime.ParseExact():

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


Kib*_*bee 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);
Run Code Online (Sandbox Code Playgroud)

改为上面.将hh更改为HH,因为HH表示24小时时间.如果不使用前导零,则只需使用H.有关创建格式字符串的更多信息,请参阅本文.

同样来自链接的MSDN文章,似乎格式"g"应该起作用.

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