我创建了一个简单的控制台应用程序,其主要方法中包含以下代码行:
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输入日期?
答案 0 :(得分:4)
如果您不提供不同的文化,请使用当前的文化。显然,您当前的文化日期格式首先是月份,然后是当天。
您可以将DateTime.ParseExact
与CultureInfo.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
编辑:
检查此处的日期时间设置: