将字符串从RSS源转换为DateTime for Database

时间:2014-11-06 15:15:30

标签: c# .net string datetime

我有来自RSS Feed的Thu, 06 Nov 2014 10:47:21 GMT的值。我想将此字符串保存到MS SQL数据库中的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();

1 个答案:

答案 0 :(得分: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可以是中央标准时间或中国标准时间或古巴标准时间。