通过解析将字符串转换为日期时间

时间:2014-06-09 06:25:08

标签: c# .net

我收到以下格式的字符串

string dt=  "\"2014-06-01T05:00:00.000Z\""

我正在尝试按照

方式将其转换为日期
mDateTime dt = Convert.ToDateTime(dt)

我收到错误说当将字符串转换为日期时使用解析字符串。 请告诉我如何解析字符串到目前为止。谢谢

4 个答案:

答案 0 :(得分:5)

Convert.ToDateTime方法失败,因为这不是CurrentCulture的标准日期和时间模式(可能没有文化支持此格式)。

您可以使用DateTime.TryParseExactDateTime.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);