我尝试将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
,但它也无法正常工作。
我缺少什么?我确定它只是我头脑中的缺失点。如果解决方案真的很容易 - 抱歉时间错过 - 无论如何,谢谢你的每一个答案!
答案 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"));