2011-02-16 944 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。所以这看起来像一个有效的数据串给我。