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