gpt4 book ai didi

c# - DateTime.TryParseExact 加一分钟?

转载 作者:太空狗 更新时间:2023-10-30 00:14:30 29 4
gpt4 key购买 nike

我有这个转换:

DateTime dateTime;
DateTime.TryParseExact("01/02/2013", "mm/dd/yyyy", null, DateTimeStyles.None, out dateTime);

以下断言失败:

Assert.AreEqual(new DateTime(2013, 1, 2), dateTime);

因为 TryParseExact 将日期时间增加一小时:

Expected: 2013-01-02 00:00:00.000
But was: 2013-01-02 00:01:00.000

这是否与夏令时有关,如果是,是否意味着我不应该使用 DateTimeStyles.None?

最佳答案

您的格式 "mm/dd/yyyy" 表示分钟/天/年。您需要 "MM/dd/yyyy"(月份大写)。此外,通过传递 null 您实际上是在说:使用当前区域性的日期时间格式。您可能想要使用 CultureInfo.InvariantCulture

DateTime.TryParseExact("01/02/2013", "MM/dd/yyyy", CultureInfo.InvariantCulture, DateTimeStyles.None, out dateTime);

如果当前区域性不使用 / 作为日期分隔符,这也可以防止出现问题。例如,德国使用 . 作为分隔符,因此格式字符串 "MM/dd/yyyy" 将被评估为 "MM.dd.yyyy"Read .

关于c# - DateTime.TryParseExact 加一分钟?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26020290/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com