我收到以下格式的字符串
string dt= "\"2014-06-01T05:00:00.000Z\""
我正在尝试按照
方式将其转换为日期mDateTime dt = Convert.ToDateTime(dt)
我收到错误说当将字符串转换为日期时使用解析字符串。 请告诉我如何解析字符串到目前为止。谢谢
答案 0 :(得分:5)
Convert.ToDateTime
方法失败,因为这不是CurrentCulture
的标准日期和时间模式(可能没有文化支持此格式)。
您可以使用DateTime.TryParseExact
或DateTime.ParseExact
方法使用自定义日期和时间格式。
这是LINQPad;
的示例string s = "\"2014-06-01T05:00:00.000Z\"";
DateTime dt;
if(DateTime.TryParseExact(s, "'\"'yyyy-MM-dd'T'HH:mm:ss.fff'Z\"'",
CultureInfo.InvariantCulture,
DateTimeStyles.None, out dt))
{
dt.Dump();
}
输出将是;
6/1/2014 5:00:00 AM
这里有 demonstration
。
答案 1 :(得分:3)
首先你需要修剪引号,然后解析:
DateTime result = DateTime.Parse(dt.Trim('\"'));
答案 2 :(得分:1)
试试这个:
string dt = "\"2014-06-01T05:00:00.000Z\"";
dt = dt.Replace("\"", "");
DateTime dtFinal = DateTime.ParseExact(dt,"yyyy-MM-ddTHH:mm:ss.fffZ",
CultureInfo.InvariantCulture);
答案 3 :(得分:1)
您可以使用下面提到的代码
string dt = "\"2014-06-01T05:00:00.000Z\"";
dt = dt.Replace("\"", "");
DateTime dt12 = Convert.ToDateTime(dt);