为什么 .NET Core(2.1 版)dotnet build在我的代码中有这个错误(不仅仅是警告)
var timestamp = DateTime.UtcNow.ToString("o");
Run Code Online (Sandbox Code Playgroud)
Program.cs(78,8):错误 CA1305:“DateTime.ToString(string)”的行为可能因当前用户的区域设置而异。将 'Program.SendMessagesForever(ModuleClient, CancellationToken)' 中的此调用替换为对 'DateTime.ToString(string, IFormatProvider)' 的调用。
我的理解是这"o"不是本地敏感的吗?!
这是理想的行为吗?如果是这样,你将如何解决这个问题?为这个毫无意义的任务实例化一个 FormatProvider 对我来说似乎非常没有必要。
使用静态CultureInfo.InvariantCulture属性:
var timestamp = DateTime.UtcNow.ToString("o",
System.Globalization.CultureInfo.InvariantCulture);
Run Code Online (Sandbox Code Playgroud)