2011-02-16 182 views
4

我想生成符合RFC 3339的日期字符串(即'2008-03-19T00:00:00.0000000-04:00'),但我似乎有一個問題與偏移是無效。我使用了以下內容:C#日期時間 - RFC 3339格式

private string GetDate(DateTime DateTime) 
{ 
    DateTime UtcDateTime = TimeZoneInfo.ConvertTimeToUtc(DateTime); 
    return XmlConvert.ToString(UtcDateTime, XmlDateTimeSerializationMode.Utc); 
} 

但這返回我有一個值,例如「1977-02-03T05:00:00Z」

我一直在使用一個特定的格式也試圖如

utcDateTime.ToString("yyyy-MM-dd'T'HH:mm:ss.fffK", DateTimeFormatInfo.InvariantInfo); 

但是結果相同。


看到這個現有的參考:How do I parse and convert DateTime's to the RFC 3339 date-time format?

+1

你的`UtcDateTime`是UTC,那麼你爲什麼期望一個不同於0的時區? – CodesInChaos 2011-02-16 14:45:07

回答

7

要轉換您的數據爲UTC,所以其時區偏移UTC是0:00。 RFC爲UTC日期定義了一個方便的符號,後綴爲Z。所以這看起來像一個有效的數據串給我。