问题描述
{{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"
。