DateTime.ParseExact并不像我期望的那样工作

时间:2015-06-17 07:35:20

标签: c# datetime

我尝试将en-US中的DateTime(在C#中)解析为de-DE,或者只是以不同的格式解析。输入DateTime为06/17/2015 09:22:30 AM

我尝试了什么:

DateTime date = DateTime.ParseExact(dateString, "d.MM.yyyy HH:mm:ss", new CultureInfo("de-DE"));

DateTime date = DateTime.ParseExact(dateString, "d.MM.yyyy HH:mm:ss", CultureInfo.InvariantCulture);

在两个版本中我都有相同的输出 - 这意味着输出与输入相同,没有任何改变。我可以在ToString()方法中更改它,但我需要它作为DateTime。

string test = datum.ToString("d.MM.yyyy HH:mm:ss");
output is `17.06.2015 09:22:30`

当前Thread的CurrentCultureInfo可能是问题吗?因为当前的Thread设置为CultureInfo en-US。 我已将CultureInfo.DefaultThreadCurrentUICulture设置为de-DE,但它也无法正常工作。

我缺少什么?我确定它只是我头脑中的缺失点。如果解决方案真的很容易 - 抱歉时间错过 - 无论如何,谢谢你的每一个答案!

1 个答案:

答案 0 :(得分:3)

这是CultureInfo.InvariantCulture的默认格式,因此您不需要使用ParseExact

DateTime date = DateTime.Parse(dateString, CultureInfo.InvariantCulture);
string inGermanFormat = date.ToString("d.MM.yyyy HH:mm:ss", new CultureInfo("de-DE"));