将自定义格式解析为DateTime

时间:2013-11-01 21:36:37

标签: c# parsing datetime

我正在尝试将字符串转换为DateTime。代码如下:

DateTime.Parse("20131101T210705.282Z").ToShortTimeString()

我收到格式异常。

我尝试提供以下格式" yyyyMMddTssmmhh.fffz"但收到同样的例外。代码如下所示

DateTime dt;
if (DateTime.TryParseExact("20131101T210705.282Z",
                           "yyyyMMddTssmmhh.fffz",
                          new CultureInfo("en-US"),
                          DateTimeStyles.None,
                          out dt))
    return dt.ToShortTimeString();

在这种情况下,代码不会解析字符串。

3 个答案:

答案 0 :(得分:1)

试试这个:

 DateTime dt;
    if (DateTime.TryParseExact("20131101T210705.282Z",
                               "yyyyMMddTssmmhh.fffZ",
                              new CultureInfo("en-US"),
                              DateTimeStyles.None,
                              out dt))
        return dt.ToShortDateString() + " " + dt.ToShortTimeString();

答案 1 :(得分:0)

这可能是解析的一种方法。

   var timeStamp = "20131101T210705.282Z";
   var datetime = timeStamp.Split(new[] { 'T' ,'.'});
   DateTime dt1;


  if (DateTime.TryParseExact(datetime[0],
                     new string[] { "yyyyMMdd" },
                    new CultureInfo("en-US"),
                    DateTimeStyles.None,
                    out dt1))
  {
    Console.WriteLine(dt1.ToShortDateString());
  }

  DateTime dt2;


  if (DateTime.TryParseExact(datetime[1],
                     new string[] { "ssmmhh" },
                    new CultureInfo("en-US"),
                    DateTimeStyles.None,
                    out dt2))
  {
    Console.WriteLine(dt2.ToShortTimeString());
  }

  Console.WriteLine(dt1.ToShortDateString() + " " + dt2.ToShortTimeString());
  Console.ReadLine();

答案 2 :(得分:0)

格式完全不正确。由于所有值(小时,分钟和秒)都小于24,因此给出的时间戳值不能清楚地指示小时数。以下代码可以正常工作。

DateTime.TryParseExact(value,
                       "yyyyMMddTHHmmss.fffZ",
                       CultureInfo.InvariantCulture,
                       DateTimeStyles.None,
                       out dt)

鉴于这种专有格式,小时数为24小时格式,排在第一位。从今天早晨开始的测试产生以下值:20131106T162733.032Z。我能够测试这种专有格式,因为我们在同一家公司工作。 :)