簡體   English   中英

DateTime.ToString格式表達式是否受當前區域性區域設置的影響?

[英]Is a DateTime.ToString format expression affected by the current culture locale?

我有一些代碼正在從胖客戶端應用程序中記錄格式的時間戳

DateTime.UtcNow.ToString("MM/dd/yy HH:mm:ss")

現在,在中國運行的客戶端(不確定究竟是哪個語言環境),這將在日志中使用格式生成日期

11-20-13 02:14:03

我注意到它正在使用 - 而不是/來划分部分,即使我明確想要/

我試圖將當前文化設置為中文簡體zh-CN但我無法重現遠程客戶端如何生成該字符串

當前區域性區域設置是否會影響此格式字符串的輸出? 或者是否有其他一些我不知道的含義?

是的, /字符是占位符,用於當前文化用於分隔日期部分的任何內容。 來自MSDN

“/”自定義格式說明符表示日期分隔符,用於區分年,月和日。 從當前或指定區域性的DateTimeFormatInfo.DateSeparator屬性中檢索適當的本地化日期分隔符。

與其他格式說明符一樣,您可以使用\\來轉義/

DateTime.UtcNow.ToString(@"MM\/dd\/yy HH\:mm\:ss")

或者在格式化字符串時指定顯式文化:

DateTime.UtcNow.ToString("MM/dd/yy HH:mm:ss", CultureInfo.InvariantCulture)

是的,這就是它的工作原理。 /正在被本地日期分隔符替換。 這同樣適用於:作為時間分隔符。 您可以在MSDN上找到更多信息: 自定義日期和時間格式字符串

要改變它,用\\逃避它們:

DateTime.UtcNow.ToString(@"MM\/dd\/yy HH\:mm\:ss")

暫無
暫無

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

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