我认为这应该很简单,但无法获得它:(。在此格式中,Z是时区。
T是长时间模式
我如何获取这种格式的日期,除非使用
DateTime dt = DateTime.Now;
Console.WriteLine(dt.ToString("yyyy-MM-ddTHH:mm:ssZ"));在C#中
发布于 2009-11-13 18:38:16
使用UTC
ISO 8601 (MSDN datetime formats)
Console.WriteLine(DateTime.UtcNow.ToString("s") + "Z");2009-11-13T10:39:35Z
Z在那里是因为
如果时间是协调世界时,则在时间后面直接添加一个'Z‘,不带空格。“z”是零UTC偏移量的区域指示符。因此,“09:30UTC”表示为"09:30Z“或"0930Z”。"14:45:15 UTC“将是"14:45:15Z”或"144515Z“。
如果要包括偏移量
int hours = TimeZoneInfo.Local.BaseUtcOffset.Hours;
string offset = string.Format("{0}{1}",((hours >0)? "+" :""),hours.ToString("00"));
string isoformat = DateTime.Now.ToString("s") + offset;
Console.WriteLine(isoformat);需要注意的两件事:时间过后需要+或-,但很明显+不会显示在正数上。根据维基百科的说法,偏移量可以是+hh格式或+hh:mm。我只坚持了几个小时。
据我所知,RFC1123 (HTTP date,"u“格式化程序)并不意味着提供时区偏移量。所有时间均为GMT/UTC。
发布于 2012-07-10 03:22:46
Console.WriteLine(DateTime.UtcNow.ToString("o"));
Console.WriteLine(DateTime.Now.ToString("o"));输出:
2012-07-09T19:22:09.1440844Z
2012-07-09T12:22:09.1440844-07:00发布于 2016-03-09 11:39:25
"o“格式对于DateTime和DateTimeOffset是不同的:(
DateTime.UtcNow.ToString("o") -> "2016-03-09T03:30:25.1263499Z"
DateTimeOffset.UtcNow.ToString("o") -> "2016-03-09T03:30:46.7775027+00:00"我的最终答案是
DateTimeOffset.UtcDateTime.ToString("o") //for DateTimeOffset type
DateTime.UtcNow.ToString("o") //for DateTime typehttps://stackoverflow.com/questions/1728404
复制相似问题