如何将此日期02-12-2013
转换为02/12/2013
。得到错误:
字符串未被识别为有效的DateTime。
string format = "dd/MM/yyyy";
table.Rows.Add(
25,
"Indocin",
"David",
DateTime.ParseExact("02-12-2013", format, CultureInfo.InvariantCulture)
);
答案 0 :(得分:1)
使用dd-MM-yyyy
格式代替dd/MM/yyyy
。
将指定的日期和时间字符串表示形式转换为它 DateTime等效使用指定的格式和特定于文化 格式信息。 字符串表示的格式必须匹配 准确的指定格式
在你的情况下,显然他们不是。
我怀疑如果您的CurrentCulture
DateSeparator
-
为null
,您可以跳过使用CultureInfo.InvariantCulture
部分。您可以将其用作DateTime
,等于使用CultureInfo.CurrentCulture
。
"/"
Custom Format Specifier在自定义日期和时间格式中具有特殊含义。它意味着; 将我替换为当前的文化日期分隔符或指定的文化。
下次请仔细阅读文档。
但在这里我有一个场景,日期可以是任何格式,如 dd-MM-yyyy或dd / MM / yyyy或MM-dd / yyyy格式或者它可以是任何格式 我只需将输出显示为dd / MM / yyyy格式。请建议
首先,String
没有任何隐式格式。它只是一个价值。 DateTime
表示它可以有格式。
如果您的字符串可以有多种格式,则可以使用DateTime.ParseExact(String, String\[\], IFormatProvider, DateTimeStyles)
overload,它将字符串数组作为您的格式。然后,您可以使用DateTime.ToString(format)
向yourDateTime.ToString(@"dd\/MM\/yyyy");
显示您想要的格式;
{{1}}
答案 1 :(得分:0)
使用此:
string format = "dd-MM-yyyy";
table.Rows.Add(25, "Indocin", "David", DateTime.ParseExact("02-12-2013", format, CultureInfo.InvariantCulture));
答案 2 :(得分:0)
希望您想格式化日期;如果您不介意在代码中进行以下更改:
System.DateTime dates = Now.Date;
string format = "dd/MM/yyyy";
table.Rows.Add(25, "Indocin", "David",dates.ToString(format) ));