簡體   English   中英

無法將字符串識別為有效的DateTime。 引發異常

[英]String was not recognized as a valid DateTime. Throws an Exception

我正在嘗試將當前日期轉換為指定的格式。

DateTime date = DateTime.ParseExact(DateTime.Now.ToString(), "yyyy-MM-dd HH:mm:ss.fff",
                                       CultureInfo.InvariantCulture,
                                       DateTimeStyles.None);

我收到以下異常。

無法將字符串識別為有效的DateTime。

我當地的時區是(UTC + 10:00)墨爾本。

我在這里做錯了什么?

您的代碼(即使有效)也無濟於事。 它將簡單地序列化和反序列化日期。 我相信您正在尋找這個:

string date = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff");

這是行不通的,因為DateTime.Now.ToString()給出了這樣的字符串(我恰好在同一時區,並且大概與您具有相同的文化):

14/01/2016 3:54:01 PM  

格式如下:

dd/MM/yyyy h:mm:ss tt

哪種格式與您使用的格式不匹配: yyyy-MM-dd HH:mm:ss.fff

嘗試這個:

string fm = "yyyy-MM-dd HH:mm:ss.fff";
string str = DateTime.Now.ToString(fm, CultureInfo.InvariantCulture);
DateTime dt = DateTime.ParseExact(str, fm, CultureInfo.InvariantCulture);

編輯:

達到日期格式的更好方法是

    DateTime now = DateTime.Now;
    CultureInfo culture = new CultureInfo("en-AU"); //Melbourne
    Thread.CurrentThread.CurrentCulture = culture;
    Console.WriteLine(now.ToString("yyyy-MM-ddTHH:mm:ss.fff"));

IDEONE演示

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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