作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在尝试引用 UTC 时间间隔获取本地日期时间,我正在执行下面的代码。
var dtString =DateTime.UtcNow.ToString(@"yyyy-MM-ddTHH\:mm\:ss.fzzz");
但是每次它返回一个异常作为
为什么会出现这个异常,如何解决这个问题?
最佳答案
z
格式说明符用于显示本地时间和 UTC 时间之间的偏移量。
将它与 UTC 时间一起使用没有意义(因为它始终为 0)。这就是您收到警告的原因(感谢@HansPassant 的评论)。
您可以:
想要打印本地时间和 UTC 的偏移量(这是标准的):
var dtString = DateTime.Now.ToString(@"yyyy-MM-ddTHH\:mm\:ss.f zzz");
或者想要打印 UTC 时间和本地时区(这真的不常见):
var dtString = DateTime.UtcNow.ToString(@"yyyy-MM-ddTHH\:mm\:ss.f") + " " + DateTime.Now.ToString(@"zzz");
这或多或少等同于您的代码(如@JeroenMostert link 中所述):
var dtString = DateTime.UtcNow.ToString(@"yyyy-MM-ddTHH\:mm\:ss.fzzz");
但生成的字符串根本不标准并导致误解。
"2015-02-18T12:08:15.1 +01:00"
读作本地时间和本地时区,而不是UTC时间和本地时区。
您还可以在此处找到有关时区和良好示例的更多信息:TimeZone.CurrentTimeZone Property
关于c# - 发生 DateTimeInvalidLocalFormat,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28582774/
我正在尝试引用 UTC 时间间隔获取本地日期时间,我正在执行下面的代码。 var dtString =DateTime.UtcNow.ToString(@"yyyy-MM-ddTHH\:mm\:ss
尽管执行了 ToString(),但我在调试时遇到此错误: A UTC DateTime is being converted to text in a format that is only cor
我是一名优秀的程序员,十分优秀!