将UTC时间转换为类似ISO 8601的格式
本文关键字:ISO 8601 格式 UTC 时间 转换 | 更新日期: 2023-09-27 18:25:41
我想将UTC时间转换为以下格式(IS0 8601)。例如
2000-01-01T17:00:00-05:00
目前我使用的是UtcNow.Convert.ToString("s")
,它提供了格式的日期时间
2015-12-05T08:49:14
但是这跳过了CCD_ 2符号之后的时间部分。
有人能帮忙吗?
我认为您的格式与ISO 8601格式有点不同。
首先,当您使用任何z
格式说明符时,您总是得到+
或-
符号,这取决于您的UTC偏移值是负还是正。
最好获取您当前的本地时区utc偏移量,使用hh'':mm
格式进行格式化,并将您格式化的UtcNow
值组合为:;
var utcOffset = TimeZoneInfo.Local.GetUtcOffset(DateTime.UtcNow);
var formattedOffset = utcOffset.ToString("hh'':mm");
Console.WriteLine(DateTime.UtcNow.ToString("yyyy-MM-ddTHH:mm:ss'-'" + formattedOffset));
或者,您可以使用"s"
标准格式说明符,并使用-
字符串文字将偏移部分格式化为;
Console.WriteLine(DateTime.UtcNow.ToString("s") + utcOffset.ToString("'-'hh'':mm"));