如果将UTC时间再通过ToString()方法的"z"/"zz"/"zzz"自定义格式说明符进行转化,就引发异常:
错误代码演示以及错误信息截图:
不要看上面的说明一大堆,其实这是一个比较低级错误,就是把UTC时间再转换成UTC格式的时间(无意义转换),所以被认为是无效的时间格式!主要还是需要理解下UTC(世界统一时间)和zzz自定义格式说明符。
要想还原这个错误,可以新建一个控制台应用程序,输入下列代码:
DateTime dt = DateTime.Now.ToUniversalTime();
dt.ToString("yyyy-MM-ddTHH:mm:ssz");
//dt.ToString("yyyy-MM-ddTHH:mm:sszz");
//dt.ToString("yyyy-MM-ddTHH:mm:sszzz");
PS:注释的另外两行代码同样会引发DateTimeInvalidLocalFormat异常。估计还有其他情况也会引发这个异常,不过目前我还没遇到过。
关于异常中提到的“Z”格式说明符,看MSDN文档即可:"z"自定义格式说明符
作者:十有三
出处:https://shiyousan.com/post/636266650727291139
版权声明:本文采用知识共享许可协议:署名-相同方式共享 4.0 国际(CC BY-SA 4.0)。欢迎转载本文,转载请声明出处或保留此段声明。