2016-03-01 192 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,在我看來,這是一種不尋常的時間格式。如果我可以安全地忽略格林尼治標準時間,我會向這些日期的提供者發送電子郵件。再次感謝。 –