簡體   English   中英

C#DateTime toString在Windows Server 2012和2016上的行為不同

[英]C# DateTime toString behaves differently on windows server 2012 and 2016

我在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版本會發生什么! 任何幫助深表感謝。 兩台服務器的應用程序池的標識都設置為ApplicationPoolIdentityInternational注冊密鑰位於此處,兩台服務器的HKEY_CURRENT_USER\\Control Panel\\International都設置為en-US

編輯:這是我使用toString的示例源代碼

var date = transactionTime.ToString("yyMMddHHmmss")

嘗試顯式指定cultureinfo:

DateTime transactionTime = DateTime.UtcNow;
Console.WriteLine(transactionTime.ToString("yyMMddHHmmss", new CultureInfo("fa-IR")));
Console.WriteLine(transactionTime.ToString("yyMMddHHmmss", new CultureInfo("en-GB")));

這將保證字符串格式的正確行為。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM