2014-11-06 59 views
0

我有來自RSS提要的值Thu, 06 Nov 2014 10:47:21 GMT。我想將此字符串保存到MS SQL數據庫中的DateTime字段。但是,我得到一個錯誤將字符串從RSS提要轉換爲數據庫的DateTime

「字符串未被識別爲有效的DateTime」

DateTime date = Convert.ToDateTime(a.PubDate); 
string dateString = a.PubDate; 

DateTime convertedDate = DateTime.ParseExact(dateString, "ddd dd MMM yyyy hh:mm:ss ttt", System.Globalization.CultureInfo.InvariantCulture); 

db.Entry(a).State = System.Data.Entity.EntityState.Modified; 
db.SaveChanges(); 

回答

2

看起來你忘了使用,誤用ttt格式說明即使存在。只有ttt說明符,它們用於AM/PM指示符。

string s = "Thu, 06 Nov 2014 10:47:21 GMT"; 
DateTime dt; 
if(DateTime.TryParseExact(s, "ddd, dd MMM yyyy hh:mm:ss 'GMT'", 
          CultureInfo.InvariantCulture, 
          DateTimeStyles.None, out dt)) 
{ 
    Console.WriteLine(dt); 
} 

您需要使用GMT部分爲文字字符串分隔符,因爲時區的縮寫名稱不規範。例如; CST可以是中央標準時間或中國標準時間或古巴標準時間。