簡體   English   中英

DateTime很奇怪

[英]DateTime being weird

怎么會

w.WriteLine(Program.RegisterList[i].DateTime);

11/20/2013 01:46:31 PM11/20/2013 01:46:31 PM

w.WriteLine(Convert.ToDateTime(Program.RegisterList[i].DateTime, CultureInfo.InvariantCulture).ToString());

20/11/2013 1:46:31 PM

不變文化難道不應該成為MM / DD / YY嗎? 如果日期以DD / MM / YY格式顯示,我想使用不變的文化方法。

謝謝!

編輯:我應該提到Program.RegisterList[i].DateTime是一個字符串。

編輯2:

MessageBox.Show("11/20/2013 01:46:31 PM");
MessageBox.Show(Convert.ToDateTime("11/20/2013 01:46:31 PM", CultureInfo.InvariantCulture).ToString());
 w.WriteLine(Convert.ToDateTime(Program.RegisterList[i].DateTime, CultureInfo.InvariantCulture).ToString());

您通過編寫無法理解的代碼使自己感到困惑。 簡單地重寫那個鳴喇叭的語句:

string s = Program.RegisterList[i].DateTime;
DateTime dt = Convert.ToDateTime(s, CultureInfo.InvariantCulture);
w.WriteLine(dt);

現在,這應該很明顯表明您沒有使用InvariantCulture顯示日期,而是使用默認區域性。 您機器上哪一個最重要。

始終編​​寫可讀代碼,這並不慢。

CultureInvariant僅保證格式不會隨文化而改變-不應用於顯示數據,而只能用於保留數據。 如果您擔心字符串的顯示方式,則應使用一種特定的區域性來顯示所需的方式。 來自MSDN的更多信息

話雖如此,我不確定您所說的“日期延誤”以其他格式表示的意思。 您是否正在閱讀日期列表,其中一些格式不同? 如果是這樣,恐怕CultureInvariant不能解決問題。

暫無
暫無

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

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