[英]DateTime being weird
怎么會
w.WriteLine(Program.RegisterList[i].DateTime);
11/20/2013 01:46:31 PM
: 11/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.