字符串未被识别为有效的日期时间.在Windows Server 2012上使用ParseExact
本文关键字:2012 Server Windows ParseExact 时间 识别 有效 日期 字符串 | 更新日期: 2023-09-27 18:14:00
我正在尝试使用"en-CA"区域性信息解析字符串到日期。它在Windows Server 2008 R2上工作正常,但在Windows Server 2012中显示异常:-字符串未被识别为有效的日期时间。
代码段如下:-
DateTime tvDefaultDate = DateTime.ParseExact("31/12/9999", "dd/MM/yyyy",
new CultureInfo("en-CA"));
/
在这里简单地表示"日期分隔符"(DateTimeFormatInfo.DateSeparator
),与数字一样,,
表示"千位分隔符"(不是逗号),.
表示"小数分隔符"(不是句号)。
在en-CA中,分隔符被映射到-
;日期需要是31-12-9999
。要使用文字/
而不是日期分隔符,需要转义:
DateTime tvDefaultDate = DateTime.ParseExact("31/12/9999", @"dd'/MM'/yyyy",
new CultureInfo("en-CA"));
或者,使用不变区域性代替;不变区域性使用/
作为日期分隔符。
IFormatProvider
中不需要培养,只需传递null
。
DateTime tvDefaultDate = DateTime.ParseExact("31/12/9999", "dd/MM/yyyy", CultureInfo.InvariantCulture);
Console.WriteLine(tvDefaultDate);
输出:
12/31/9999 12:00:00 AM
(很抱歉美国格式的最终日期)