簡體   English   中英

日期時間格式返回奇怪的結果

[英]DateTime formatting returns strange results

我有這個:

DateTime date = new DateTime();

然后我打印它。 結果如下:

本地主機:

date: 1/1/0001 12:00:00 AM

在服務器上:

date: 1-1-0001 0:00:00

正確的方法是本地主機上的方法。 如何解決這個問題,為什么會這樣? 這是相同的代碼。

因為不同機器上的區域設置不同。 要以相同的格式輸出日期時間,您必須明確指定格式字符串:

date.ToString("yyyy-MM-dd HH:mm:ss");

同樣正如約翰在下面的評論中所推薦的那樣,如果您希望在不同的機器上以相同的格式輸出日期時間,盡管本地區域設置,您可以使用InvariantCulture格式提供程序:

date.ToString(CultureInfo.InvariantCulture);

微軟

不變文化是文化不敏感的; 它與英語相關,但與任何國家/地區無關

微軟:

您可以使用不變區域性來顯示您的日期,如果您不太關心格式,只要它始終相同即可。

date.ToString(System.Globalization.CultureInfo.InvariantCulture.DateTimeFormat);

要以您在那里顯示的方式顯示日期,您可以使用:

date.ToString("M/d/yyyy hh:mm:ss tt");

或者在使用格式字符串時:

string.Format("date: {0:M/d/yyyy hh:mm:ss tt}", date);

暫無
暫無

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

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