这工作:转换日期时间
testDateTime = DateTime.ParseExact("16/10/2010", "dd/MM/yyyy", null);
这并不:
string somedate = "16/10/2010";
testDateTime = DateTime.ParseExact(somedate, "dd/MM/yyyy", null);
为什么?
这工作:转换日期时间
testDateTime = DateTime.ParseExact("16/10/2010", "dd/MM/yyyy", null);
这并不:
string somedate = "16/10/2010";
testDateTime = DateTime.ParseExact(somedate, "dd/MM/yyyy", null);
为什么?
出于某种原因,直到我说这个,也没有为我工作:CultureInfo.InvariantCulture
DateTime.ParseExact(S值, “DD/MM/YYYY”,CultureInfo.InvariantCulture);
这两个代码片段是绝对等效的,应该工作/不工作相同。我怀疑somedate
变量的值不是你认为它在你的应用程序中。尝试调试。
当我尝试它时它工作正常......只是复制并粘贴它。
插入一个断点,将指针放在变量上并检查月,日和年的成员。如果他们不是权利,请告诉我们你看到了什么。
如果您正在使用打印或msgbox显示变量的值,也许您不会输出掩码/格式。
但dateTime格式是一样的吗?对我来说,日期和月份切换:“16/10/2010”变成“10/16/2010”... – 2010-10-07 11:53:09
您的意思是说您有16个月没有得到例外吗? – Jonathan 2010-10-07 12:02:54
号码“dd/MM/yyyy”变成“MM/dd/yyyy”。 – 2010-10-07 12:04:59
当我尝试时,这两件事都适合我。你得到的错误是什么?
ParseExact()使用第二个参数来解析您的输入字符串,而不是以该格式返回值。
编辑:从下面乔的评论 - 你得到的将是在“MM/DD/YYYY”格式”输出 - 输出将不具有任何内在格式的DateTime类型
“你得到的输出将是”MM/dd/yyyy“格式” - 输出将是没有任何固有格式的DateTime类型。 – Joe 2010-10-07 17:09:13
是你。试图改变日期时间格式吗?你不能用DateTime对象来做到这一点,只有当你使用String.Format显示DateTime对象时才能改变格式:String.Format(“{0:d/M/yyyy HH: MM:SS}”,DT)(例如或其他方法)
您的两个例子是等效的,如果你的当前区域性为en-US应该工作,但不一定在所有其他文化
。例如,下面就因为去DE培养使用期限作为分隔符(二○一○年十月十六日)抛出出现FormatException:
System.Threading.Thread.CurrentThread.CurrentCulture =
CultureInfo.CreateSpecificCulture("de-DE");
DateTime testDateTime = DateTime.ParseExact("16/10/2010", "dd/MM/yyyy", null);
一般来说这是很好的做法(的FxCop会警告一下吧)始终指定IFormatProvider
参数可用时:如果您正在解析来自当前用户的输入,则通常为CultureInfo.CurrentCulture;或者CultureInfo.InvariantCulture(如果您正在解析来自外部源的输入)。
// For input from the current user (16.10.2010 in Germany)
testDateTime = DateTime.ParseExact("16/10/2010", "dd/MM/yyyy", CultureInfo.CurrentCulture);
// For input from an external source in a defined culture-invariant format
testDateTime = DateTime.ParseExact("16/10/2010", "dd/MM/yyyy", CultureInfo.InvariantCulture);
两者都适用于我 - 或者它至少是目前工作中的例子 - 所以会出现比问题中描述的更复杂的事情。 – Murph 2010-10-07 11:50:19
您是否收到任何错误?如果是,那么错误是什么? – Shekhar 2010-10-07 11:51:40
两者都适合我。什么是问题/错误? – CesarGon 2010-10-07 12:40:00