微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

C#中的utcoffset格式

如何解决C#中的utcoffset格式

{{1}}

上面的代码工作正常。但是我需要显示偏移量,例如+05:00。有什么办法可以实现这种格式?

解决方法

来自docs

自定义TimeSpan格式说明符不包含占位符分隔符,例如将天与小时,小时与分钟或秒与小数秒分隔的符号。相反,这些符号必须作为字符串文字包含在自定义格式字符串中。

因此,您必须使用上一行'或反斜杠来对上一页中未列出的格式字符串中的字符进行转义,所以:

utcOffset.ToString("hh':'mm")

但是,如果您格式化DateTimeOffset而不是TimeSpan,则实际上不必格式化自己。如果这样做,您也不需要所有的“获取UTC偏移”混乱。

您只需要zzz Custom Format Specifier

DateTimeOffset.Now.ToString("zzz")

您不需要所有TimeZone的东西。

,

您可以使用TimeZoneDateTime.Now格式字符串以及DateTimeOffset.Now来实现此目的,而不用使用zzzCultureInfo.InvariantCulture中查找时区:

Console.WriteLine(DateTimeOffset.Now.ToString("HHmmzzz",System.Globalization.CultureInfo.InvariantCulture));
// outputs 1255+02:00

Try it online

如果只希望使用该格式的偏移量,则可以使用"zzz"代替"HHmmzzzz"

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。