C# DateTime.UtcNow.ToString(";o";上的生成错误
为什么.NET Core(2.1版)在C# DateTime.UtcNow.ToString(";o";上的生成错误,c#,.net-core,C#,.net Core,为什么.NET Core(2.1版)在dotnet build上抛出错误(而不仅仅是警告) var timestamp = DateTime.UtcNow.ToString("o"); Program.cs(78,8):错误CA1305:“DateTime.ToString(string)”的行为可能因当前用户的区域设置而异。将“Program.SendMessagesForver(ModuleClient,CancellationToken)”中的此调用替换为对“DateTime.ToStr
dotnet build
上抛出错误(而不仅仅是警告)
var timestamp = DateTime.UtcNow.ToString("o");
Program.cs(78,8):错误CA1305:“DateTime.ToString(string)”的行为可能因当前用户的区域设置而异。将“Program.SendMessagesForver(ModuleClient,CancellationToken)”中的此调用替换为对“DateTime.ToString(string,IFormatProvider)”的调用
我的理解是,“o”
无论如何都不是本地敏感的
这是你想要的行为吗?如果是这样,您将如何解决这一问题?仅为这个毫无意义的任务实例化FormatProvider对我来说似乎是非常不必要的
我的理解是“o”不是本地敏感的吗
事实并非如此,但代码分析工具并不知道这一点
发件人:
何时取消显示警告
当确定默认格式是正确的选择,并且代码可维护性不是重要的开发优先级时,可以安全地禁止此规则发出警告
因此,您可以安全地对DateTime.UtcNow.ToString(“o”)代码>
我的理解是“o”不是本地敏感的吗
事实并非如此,但代码分析工具并不知道这一点
发件人:
何时取消显示警告
当确定默认格式是正确的选择,并且代码可维护性不是重要的开发优先级时,可以安全地禁止此规则发出警告
因此,您可以安全地对DateTime.UtcNow.ToString(“o”)代码>使用静态CultureInfo.InvariantCulture
属性:
var timestamp = DateTime.UtcNow.ToString("o",
System.Globalization.CultureInfo.InvariantCulture);
使用静态CultureInfo.InvariantCulture
属性:
var timestamp = DateTime.UtcNow.ToString("o",
System.Globalization.CultureInfo.InvariantCulture);
谢谢你的简短解答!实际上,我会在代码中使用它,因为我发现它比使用pragmas更好。我有点矛盾,我会继续,并接受@CodeCaster的答案,虽然它实际上解释了这个问题。谢谢你的简短解决方案!实际上,我会在代码中使用它,因为我发现它比使用pragmas更好。尽管@CodeCaster的回答实际上解释了这个问题,但我还是有点矛盾,我会继续接受它。