26

我的代码中有这个:

var date1 = DateTime.ParseExact(date, "dd.MM.yyyy HH:mm:ss", System.Globalization.CultureInfo.InvariantCulture);

当我现在的文化是荷兰语 ( nl-NL) 而不是 5 月 1 日时,我会得到 1 月 5 日。

我认为错误在第二个参数dd.MM.yyyy HH:mm:ss中。

有没有办法使用CultureInfo类来解决这个问题?

4

4 回答 4

43

您可以尝试以下方法:

System.Globalization.CultureInfo cultureinfo =
        new System.Globalization.CultureInfo("nl-NL");
DateTime dt = DateTime.Parse(date, cultureinfo);
于 2012-12-10T09:02:51.293 回答
6

使用CultureInfo类来改变你的文化信息。

var dutchCultureInfo = CultureInfo.CreateSpecificCulture("nl-NL");
var date1 = DateTime.ParseExact(date, "dd.MM.yyyy HH:mm:ss", dutchCultureInfo);
于 2012-12-10T09:02:44.633 回答
1

InvariantCulture类似于en-US,所以我会改用正确的CultureInfo

var dutchCulture = CultureInfo.CreateSpecificCulture("nl-NL");
var date1 = DateTime.ParseExact(date, "dd.MM.yyyy HH:mm:ss", dutchCulture);

演示

当文化是我们的时候呢?我必须为那里的每一种语言编写代码吗?

如果您想知道如何在“en-us”等另一种文化中显示日期,您可以使用date1.ToString(CultureInfo.CreateSpecificCulture("en-US")).

于 2012-12-10T09:01:05.760 回答
0

试试看..它会工作

字符串文本=“2021 年 3 月 15 日”;

DateTime.ParseExact(text, "dd/M/yyyy", CultureInfo.InvariantCulture);

于 2021-03-12T09:42:18.040 回答