怎么来
w.WriteLine(Program.RegisterList[i].DateTime);
写道: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
是一个字符串。
EDIT2:
MessageBox.Show("11/20/2013 01:46:31 PM");
MessageBox.Show(Convert.ToDateTime("11/20/2013 01:46:31 PM", CultureInfo.InvariantCulture).ToString());
答案 0 :(得分:10)
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来显示日期,它使用默认文化。在你的机器上哪一天把这一天放在第一位。
始终写可读代码, 更慢。
答案 1 :(得分:2)
CultureInvariant
只保证格式不会在不同文化中发生变化 - 它不应该用于显示数据,只能用于保存数据。如果您担心字符串的显示方式,则应使用显示所需方式的特定文化。 More from MSDN
话虽如此,我不确定你用不同格式的“日期滑落”是什么意思。你在阅读日期列表,有些格式不同吗?如果是这样,我恐怕CultureInvariant
不是答案。