如何解决C#中的utcoffset格式
{{1}}
上面的代码工作正常。但是我需要显示偏移量,例如+05:00。有什么办法可以实现这种格式?
解决方法
来自docs:
自定义TimeSpan格式说明符不包含占位符分隔符,例如将天与小时,小时与分钟或秒与小数秒分隔的符号。相反,这些符号必须作为字符串文字包含在自定义格式字符串中。
因此,您必须使用上一行'
或反斜杠来对上一页中未列出的格式字符串中的字符进行转义,所以:
utcOffset.ToString("hh':'mm")
但是,如果您格式化DateTimeOffset
而不是TimeSpan
,则实际上不必格式化自己。如果这样做,您也不需要所有的“获取UTC偏移”混乱。
您只需要zzz Custom Format Specifier:
DateTimeOffset.Now.ToString("zzz")
您不需要所有TimeZone
的东西。
您可以使用TimeZone
和DateTime.Now
格式字符串以及DateTimeOffset.Now
来实现此目的,而不用使用zzz
从CultureInfo.InvariantCulture
中查找时区:
Console.WriteLine(DateTimeOffset.Now.ToString("HHmmzzz",System.Globalization.CultureInfo.InvariantCulture));
// outputs 1255+02:00
如果只希望使用该格式的偏移量,则可以使用"zzz"
代替"HHmmzzzz"
。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。