我的情况是我以下列格式收到日期作为字符串。
“2014年1月13日星期一00:00:00 GMT + 0000(GMT标准时间)”
我需要将其转换为c#中的以下格式(日期/字符串)以进行进一步处理
YYYY-MM-DD (2014-01-13)
Convert.ToDateTime(SelectedData)
以上代码出现错误:
'Convert.ToDateTime(SelectedData)' threw an exception
of type 'System.FormatException' System.DateTime {System.FormatException}
有什么建议吗?
我无法更改收到日期的格式 最诚挚的问候。
答案 0 :(得分:12)
您将需要使用DateTime.ParseExact
:
var date = DateTime.ParseExact(
"Mon Jan 13 2014 00:00:00 GMT+0000 (GMT Standard Time)",
"ddd MMM dd yyyy HH:mm:ss 'GMT'K '(GMT Standard Time)'",
CultureInfo.InvariantCulture);
解析完日期后,您可以将其发送出去:
date.ToString("yyyy-MM-dd");
这是一个Ideone来证明它。
答案 1 :(得分:6)
Convert.ToDateTime
使用标准日期和时间格式,但这不是standart DateTime
format。
如果你的GMT+0000 (GMT Standard Time)
在你的字符串中被免除,你可以使用DateTime.ParseExact
代替;
string s = "Mon Jan 13 2014 00:00:00 GMT+0000 (GMT Standard Time)";
var date = DateTime.ParseExact(s,
"ddd MMM dd yyyy HH:mm:ss 'GMT+0000 (GMT Standard Time)'",
CultureInfo.InvariantCulture);
Console.WriteLine(date.ToString("yyyy-MM-dd"));
输出将是;
2014-01-13
这里有 demonstration
。
如需了解更多信息,请访问:
答案 2 :(得分:1)
string date = SelectedData.Substring(4, 11);
string s = DateTime.ParseExact(date, "MMM dd yyyy", CultureInfo.InvariantCulture).ToString("yyyy-MM-dd");