我正在尝试将日期时间(在 C# 中)从 en-US
解析为 de-DE
或只是以不同的格式解析。输入的日期时间为 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()
方法中更改它,但我需要它作为日期时间。
string test = datum.ToString("d.MM.yyyy HH:mm:ss");
output is `17.06.2015 09:22:30`
当前线程的当前文化信息可能是问题所在吗?因为当前线程设置为文化信息en-US
。我已将CultureInfo.DefaultThreadCurrentUICulture
设置为 de-DE
但也没有用。
我错过了什么?我敢肯定这只是我脑海中缺失的一点。如果解决方案真的很容易 - 抱歉浪费时间 - 无论如何,谢谢你的每一个答案!
CultureInfo.InvariantCulture
的默认格式,所以你不需要使用ParseExact
:
DateTime date = DateTime.Parse(dateString, CultureInfo.InvariantCulture);
string inGermanFormat = date.ToString("d.MM.yyyy HH:mm:ss", new CultureInfo("de-DE"));