我在Windows Server 2012和Windows Server 2016上具有相同的应用程序实例,但是在2012版本中,DateTime对象上的C#toString('yyMMddHHmmss')
的行为与2016版本不同!
这是我在2012服务器中获得的toString
的日志:
Info Culture is: fa-IR
Info UiCulture is: fa-IR
Info transactionTime: 181217145529
这是2016年版本的输出:
Info Culture is: fa-IR
Info UiCulture is: fa-IR
Info transactionTime: 970926140801
我应该注意,两个系统的“区域”部分中的控制面板设置都是相同的,我不知道2012版本会发生什么!任何帮助深表感谢。
两台服务器的应用程序池的标识都设置为ApplicationPoolIdentity
,位于此处International
的{{1}}的注册密钥被设置为HKEY_CURRENT_USER\Control Panel\International
。
编辑:
这是我使用en-US
toString
答案 0 :(得分:0)
尝试显式指定cultureinfo:
DateTime transactionTime = DateTime.UtcNow;
Console.WriteLine(transactionTime.ToString("yyMMddHHmmss", new CultureInfo("fa-IR")));
Console.WriteLine(transactionTime.ToString("yyMMddHHmmss", new CultureInfo("en-GB")));
这将保证字符串格式的正确行为。