簡體   English   中英

將字符串轉換為DateTime時,字符串未被識別為有效的DateTime

[英]String was not recognized as a valid DateTime When Converting String to DateTime

問題

我正在嘗試將String轉換為DateTime格式,然后再次將DateTime轉換為String

情況1

string time = "20120718 00:56:03";
DateTime theTime =DateTime.ParseExact(time,"MM-dd-yyyy HH:mm:ss",CultureInfo.InvariantCulture,DateTimeStyles.None);
string convertedTime = theTime.ToString("MM-dd-yyyy HH:mm:ss");

案例2

string time = "20120718 00:56:03";
string CallDate_DBFormat = Convert.ToDateTime(time).ToString("MM-dd-yyyy HH:mm:ss");
DateTime CallTime = Convert.ToDateTime(CallDate_DBFormat);
string convertedTime = CallTime.ToString("MM-dd-yyyy HH:mm:ss");

在兩種情況下,我都會得到一個例外

字符串未被識別為有效的DateTime

DateTime.ParseExact方法的文檔中獲取

使用指定的格式和特定​​於區域性的格式信息,將日期和時間的指定字符串表示形式轉換為其等效的DateTime。 字符串表示形式的格式必須與指定的格式完全匹配。

在您的情況1中,它們不是。 請改用yyyyMMdd HH:mm:ss格式。

string time = "20120718 00:56:03";
DateTime theTime = DateTime.ParseExact(time,"yyyyMMdd HH:mm:ss",
                                       CultureInfo.InvariantCulture,
                                       DateTimeStyles.None);
string convertedTime = theTime.ToString("MM-dd-yyyy HH:mm:ss");

對於案例2,我們需要知道您的CurrentCulture屬性。 為什么?

因為此方法將DateTime.Parse方法與CurrentCulture 這里是如何實現的

public static DateTime ToDateTime(String value)
{
     if (value == null)
         return new DateTime(0);
     return DateTime.Parse(value, CultureInfo.CurrentCulture);
}

yyyyMMdd HH:mm:ss格式可能不是CurrentCulture的標准日期和時間格式,這就是為什么此方法引發FormatException的原因。

這樣吧 您設置了無效的格式以將字符串解析為DateTime查看您的DateTime字符串格式。

string time = "20120718 00:56:03";
DateTime theTime =DateTime.ParseExact(time,"yyyyMMdd HH:mm:ss",CultureInfo.InvariantCulture,DateTimeStyles.None);
string convertedTime = theTime.ToString("MM-dd-yyyy HH:mm:ss");

用這個:

 string time = "20120718 00:56:03";
        DateTime theTime = DateTime.ParseExact(time, "yyyyMMdd HH:mm:ss", CultureInfo.InvariantCulture, DateTimeStyles.None);
        string convertedTime = theTime.ToString("yyyy-dd-MM HH:mm:ss");

暫無
暫無

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

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