为什么计算机认为我以MM / dd / yyyy格式输入日期而不是dd / MM / yyyy

时间:2014-08-31 19:08:35

标签: c# date datetime

我创建了一个简单的控制台应用程序,其主要方法中包含以下代码行:

DateTime dt = DateTime.Parse("01/03/2014 00:01:05");
string d = dt.ToString("dd.MM.yyyy");
Console.WriteLine(d);

我没有提供任何错误处理或TryParse方法来保持这个问题的简单。

正如您在上面的代码中看到的,我想以DateTime格式转换字符串。然后我更改日期的格式,然后打印输出。

上述计划的输出将 03.01.2014

现在,如果我将上述代码中的日期更改为 25/02/2014 ,那么我将收到异常输入字符串的格式不正确

我只是故意将日期记入dd / MM / yyyy。那么,现在我的问题是:我应该如何告诉计算机我愿意以dd / MM / yyyy而不是MM / dd / yyyy输入日期?

2 个答案:

答案 0 :(得分:4)

如果您不提供不同的文化,请使用当前的文化。显然,您当前的文化日期格式首先是月份,然后是当天。

您可以将DateTime.ParseExactCultureInfo.InvariantCulture

一起使用
DateTime dt = DateTime.ParseExact("01/03/2014 00:01:05", "dd/MM/yyyy HH:mm:ss", CultureInfo.InvariantCulture);

现在dt.ToString("dd.MM.yyyy")产生01.03.2014。

答案 1 :(得分:1)

这可能是因为您的日期系统本地化必须设置为MM / dd / yyyy格式。在解析日期时,您可以尝试使用CultureInfo.InvariantCulture

试试这样:

DateTime dt = DateTime.ParseExact("01/03/2014 00:01:05", "dd/MM/yyyy HH:mm:ss", CultureInfo.InvariantCulture);

同时检查DateTime.Parse

编辑:

检查此处的日期时间设置:

enter image description here