我有這樣的:日期時間格式化返回奇怪的結果
DateTime date = new DateTime();
,然後我打印出來。下面是結果:
本地主機:
date: 1/1/0001 12:00:00 AM
在服務器:
date: 1-1-0001 0:00:00
正確的方法是在本地主機上的一個。如何解決這個問題,爲什麼會發生這種情況?這是相同的代碼。
我有這樣的:日期時間格式化返回奇怪的結果
DateTime date = new DateTime();
,然後我打印出來。下面是結果:
本地主機:
date: 1/1/0001 12:00:00 AM
在服務器:
date: 1-1-0001 0:00:00
正確的方法是在本地主機上的一個。如何解決這個問題,爲什麼會發生這種情況?這是相同的代碼。
由於不同地區在不同的機器上設置不同。對你有ahve指定格式字符串explciitly相同的格式日期時間輸出:
date.ToString("yyyy-MM-dd HH:mm:ss");
而且約翰特別建議在下面的評論,如果你想有在不同的機器上的相同格式的日期時間的輸出,儘管本地區域設置你可以使用InvariantCulture格式提供程序:
date.ToString(CultureInfo.InvariantCulture);
MSDN:
固定區域性是文化不敏感;它與 的英語,但不與任何國家/地區
MSDN相關:
請注意,自定義格式說明符通常最好與不變文化相結合,而標準格式說明符在指定「用戶」文化時適用(例如US)。 –
有趣的是,我知道應該使用「InvariantCulture」完成日誌記錄,所以它是否更好地爲'dateTime.ToString()'指定'InvariantCulture'? – sll
這取決於你想要做什麼。如果您試圖向用戶展示某些內容,則應該在其用戶區域中使用其中一種標準格式。如果你提供的數據可以被另一臺計算機所理解,那麼不變式文化就更合適。 –
可以使用不變的文化,以顯示你的約會如果你不太關心格式,只要它一直都是一樣的。
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);
不同的機器 – sll
它可能是你的服務器有不同的時間和時區 –
對於「奇怪」閱讀「根據記錄的行爲正確的結果」。 –