我想解析DateTime(在C#中)从en-US
到de-DE
或只是以不同的格式。输入日期时间是06/17/2015 09:22:30 AM
。DateTime.ParseExact不起作用,因为我期望
我已经试过:
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`
当前线程的CurrentCultureInfo可能是问题吗?因为当前线程设置为CultureInfo en-US
。 我已将CultureInfo.DefaultThreadCurrentUICulture
设置为de-DE
,但它也不起作用。
我失去了什么?我相信这只是我脑海中的一个缺点。如果解决方案非常简单 - 抱歉的时间 - 无论如何,谢谢你的每一个答案!
是否正确解析?我怀疑是因为你在'06/17/2015 09:22:30 AM'上使用了错误的格式。所以这个问题我不清楚。什么意思_“输出 - 输出==输入”_? –
对不起,这个文本部分没有写得很清楚。只是想说输出和输入完全一样!我的错! –
'DateTime' *没有格式*。如果你想要输出特定的格式,它总是在'ToString'(或'string.Format'等)中。 'DateTime.ParseExact'只是将一个已知格式的字符串(注意你的错误)转换为'DateTime';但'DateTime'确实*不*保存关于格式的信息。只要使用正确的'ToString'过载,例如'datum.ToString(CultureInfo.GetCultureInfo( “去-DE”))'。 – Luaan