簡體   English   中英

無法將字符串識別為有效的DateTime。 在Windows Server 2012上使用ParseExact

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM