C# 约会时间很奇怪
为什么C# 约会时间很奇怪,c#,.net,date,datetime,C#,.net,Date,Datetime,为什么 w.WriteLine(Program.RegisterList[i].DateTime); 写入:11/20/2013 01:46:31 PM 但是 写入20/11/2013下午1:46:31 ??不变的文化不应该是MM/DD/YY吗?我想使用不变区域性方法,以防日期以DD/MM/YY格式滑过 谢谢 编辑:我应该提到Program.RegisterList[I]。DateTime是一个字符串 编辑2: MessageBox.Show("11/20/2013 01:46:31 PM")
w.WriteLine(Program.RegisterList[i].DateTime);
写入:11/20/2013 01:46:31 PM
但是
写入20/11/2013下午1:46:31
??不变的文化不应该是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());
CultureInvariant
仅保证格式不会在不同的区域性之间更改-它不应用于显示数据,而应仅用于持久化数据。如果您关心字符串的显示方式,那么应该使用特定的区域性来显示所需的方式
话虽如此,我不知道你所说的不同格式的“日期溜走”是什么意思。你是否正在阅读日期列表,其中一些是不同格式的?如果是这样的话,恐怕
CultureInvariant
不是答案。CultureInvariant
只能保证格式不会在不同的文化中更改-它不应该用于显示数据,而只是用于保存数据。如果您关心字符串的显示方式,那么应该使用特定的区域性来显示所需的方式
w.WriteLine(Convert.ToDateTime(Program.RegisterList[i].DateTime, 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);
现在可以明显看出,您不是在使用不变量区域性来显示日期,而是在使用默认区域性。在你的机器上,它把一天放在第一位
总是写可读的代码,它并不慢
你写了一些你再也看不懂的代码,把自己弄糊涂了。一个简单的重写,一个喇叭的声明:
string s = Program.RegisterList[i].DateTime;
DateTime dt = Convert.ToDateTime(s, CultureInfo.InvariantCulture);
w.WriteLine(dt);
现在可以明显看出,您不是在使用不变量区域性来显示日期,而是在使用默认区域性。在你的机器上,它把一天放在第一位
始终编写可读的代码,它不会变慢。什么是程序的类型。RegisterList[i]。DateTime
?你能制作一个简短但完整的程序来演示这个问题吗?当然,我会把它放在一起。一sec@JonSkeet我已将其编辑到我的问题中。第一个消息框显示MM/DD/YY,第二个消息框由于某种原因转换为DD/MM/YY。您在自己的区域性中显示日期,而不是不变的。您仅使用不变量分析字符串。程序的类型是什么。注册表列表[i]。日期时间
?你能制作一个简短但完整的程序来演示这个问题吗?当然,我会把它放在一起。一sec@JonSkeet我已将其编辑到我的问题中。第一个消息框显示MM/DD/YY,第二个消息框由于某种原因转换为DD/MM/YY。您在自己的区域性中显示日期,而不是不变的。你只是用不变量解析字符串。@HansPassant啊,我误解了不变量文化的作用。如何将日期时间更改为MM/DD/YY HH MM SS AM/PM
格式?如果您需要特定格式,可以使用自定义格式字符串:@HansPassant Ahh,我误解了Invarient culture的做法。如何将日期时间更改为MM/DD/YY HH MM SS AM/PM
格式?如果需要特定格式,可以使用自定义格式字符串: