DateTime.Parse 失败
15/08/2000 16:58
有什么想法吗?
我需要解析日期并获得一些国际数据。
DD/MM/YYYY 不会翻转到 24 小时制
MM/DD/YYYY 将接受 24 小时制
2000 年 8 月 15 日下午 4:58 将解析
从 Kibbee 的回答中,我看到了使用其他文化。我使用正则表达式来确定它是否是 dd/MM,如果是,则使用文化 fr-FR。
var result = DateTime.ParseExact(dateString,
"dd/MM/yyyy HH:mm",
new CultureInfo("en-US"));
如果您知道您期望日期的确切格式,您可能应该使用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。有关创建格式字符串的更多信息,请参阅本文。
同样来自链接的 MSDN 文章,看起来格式“g”应该可以工作。
dateString = "15/06/2008 08:30";
format = "g";
CultureInfo provider = new CultureInfo("fr-FR");
DateTime result = DateTime.ParseExact(dateString, format, provider);