gpt4 book ai didi

c# - 解析 W7 和 Server 2012 R2 之间的日期差异

转载 作者:太空宇宙 更新时间:2023-11-03 15:33:00 24 4
gpt4 key购买 nike

DateTime Date;
DateTime.TryParse("01.09.2015", (new CultureInfo("en-CA")), DateTimeStyles.None, out Date);

Windows 7 SP1 结果:

Date    {01.09.2015 00:00:00}   System.DateTime
Date {01.09.2015 00:00:00} System.DateTime
Day 1 int
DayOfWeek Tuesday System.DayOfWeek
DayOfYear 244 int
Hour 0 int
Kind Unspecified System.DateTimeKind
Millisecond 0 int
Minute 0 int
Month 9 int
Second 0 int
Ticks 635766624000000000 long
TimeOfDay {00:00:00} System.TimeSpan
Year 2015 int

Windows Server 2012 R2 标准结果:

Date    {1/9/2015 12:00:00 AM}  System.DateTime
Date {1/9/2015 12:00:00 AM} System.DateTime
Day 9 int
DayOfWeek Friday System.DayOfWeek
DayOfYear 9 int
Hour 0 int
Kind Unspecified System.DateTimeKind
Millisecond 0 int
Minute 0 int
Month 1 int
Second 0 int
Ticks 635563584000000000 long
TimeOfDay {00:00:00} System.TimeSpan
Year 2015 int

为什么天和月会有这些差异?需要任何补丁吗?

最佳答案

DateTime.TryParse 使用 standard date and time formats提供的文化。看起来这种 en-CA 区域性在 Windows 7 和 Windows Server 2012 中具有不同的格式。

似乎 Windows 7 使用 dd/MM/yyyy 格式,而 Windows Server 2012 使用 MM/dd/yyyy 格式。

此设置可以随 .NET Framework 版本和/或操作系统版本而改变。不用担心。如果你想准确地解析你的字符串,你可以使用 DateTime.ParseExactDateTime.TryParseExact为您的字符串提供准确格式的方法。

string s = "01.09.2015";
DateTime dt;
if(DateTime.TryParseExact(s, "dd.MM.yyyy", CultureInfo.GetCultureInfo("en-CA"),
DateTimeStyles.None, out dt))
{
// 1 September 2015
}

string s = "01.09.2015";
DateTime dt;
if(DateTime.TryParseExact(s, "MM.dd.yyyy", CultureInfo.GetCultureInfo("en-CA"),
DateTimeStyles.None, out dt))
{
// 9 January 2015
}

关于c# - 解析 W7 和 Server 2012 R2 之间的日期差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33095995/

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