![](/img/trans.png)
[英]DateTime.ParseExact gives String was not recognized as a valid DateTime.
[英]String was not recognized as a valid DateTime. using ParseExact on Windows Server 2012
我正在嘗試使用“ en-CA”文化信息將字符串解析為一個日期。 它在Windows Server 2008 R2上運行良好,但在Windows Server 2012中顯示異常:-無法將字符串識別為有效的DateTime。
以下是代碼段:-
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
不需要IFormatProvider
,只需傳遞null
。
DateTime tvDefaultDate = DateTime.ParseExact("31/12/9999", "dd/MM/yyyy", CultureInfo.InvariantCulture);
Console.WriteLine(tvDefaultDate);
輸出:
12/31/9999 12:00:00 AM
(對不起,最后一天的美國格式。)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.