vij*_*ayp 5 c# datetime-format
我试图参考UTC时间间隔获取本地日期时间,我正在执行下面的代码.
var dtString =DateTime.UtcNow.ToString(@"yyyy-MM-ddTHH\:mm\:ss.fzzz");
Run Code Online (Sandbox Code Playgroud)
但每次它都给我一个例外

为什么会出现这种异常,如何解决此问题?
该z格式说明用于显示本地时间和UTC时间之间的偏移.
将它与UTC时间一起使用是没有意义的(因为它始终为0).这就是你得到警告的原因(感谢@HansPassant的这句话).
你可以:
想要将本地时间和偏移量打印到UTC(这是标准的):
var dtString = DateTime.Now.ToString(@"yyyy-MM-ddTHH\:mm\:ss.f zzz");
Run Code Online (Sandbox Code Playgroud)
或者想要打印UTC时间和本地时区(这真的不常见):
var dtString = DateTime.UtcNow.ToString(@"yyyy-MM-ddTHH\:mm\:ss.f") + " " + DateTime.Now.ToString(@"zzz");
Run Code Online (Sandbox Code Playgroud)
这或多或少等同于您的代码(如@JeroenMostert 链接中所述):
var dtString = DateTime.UtcNow.ToString(@"yyyy-MM-ddTHH\:mm\:ss.fzzz");
Run Code Online (Sandbox Code Playgroud)
但结果字符串根本不是标准的,会导致误解.
"2015-02-18T12:08:15.1 +01:00"
Run Code Online (Sandbox Code Playgroud)
被读取为本地时间和本地时区而不是UTC时间和本地时区.
您还可以在此处找到有关时区的更多信息和示例:TimeZone.CurrentTimeZone属性
| 归档时间: |
|
| 查看次数: |
1449 次 |
| 最近记录: |