2016-03-01 127 views
1

我需要解析以下格式的日期时间:这是什么日期/时间格式?

yyyyMMdd'T'(time elapsed since 12 AM) Time Zone 

这里是我一直在考虑要分析什么两个例子:

20160301T162327.259 GMT 
20160301T165900.541 GMT 

这是一种常见的已知DateTime格式?我无法在Standard Date and Time Format Strings中找到它。如果我需要编写代码解析它(2,3),以下SO主题将有所帮助,但我不想重新发明轮子。

+1

这看起来并不像一个标准。 –

+0

您在这里有没有“时区”的精确定义? (一般情况下,应避免使用时区缩写;对于单个日期/时间,UTC偏移*可能会正常,如果您只需接受更简单的“GMT”...) –

+0

这与ISO-8601没有分隔符)与一个非标准的时区说明符。 – Joey

回答

2

解析为日期时,您可以使用自定义格式的未来:

using System; 
using System.Globalization; 

namespace ConsoleApplication1 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      string text = "20160301T162327.259 GMT"; 
      string pattern = "yyyyMMddTHHmmss.fff GMT"; 
      DateTime dateTime; 
      if (DateTime.TryParseExact(text, pattern, CultureInfo.InvariantCulture, DateTimeStyles.None, out dateTime)) 
      { 
       // DataTime is parsed 
      } 
      else 
      { 
       // Invalid string 
      } 
     } 
    } 
} 
+0

谢谢,这就是我所做的。正如Jon Skeet在上面提到的那样,它是紧凑的ISO-8607,在我看来,这是一种不寻常的时间格式。如果我可以安全地忽略格林尼治标准时间,我会向这些日期的提供者发送电子邮件。再次感谢。 –