5

我正在开发 Windows 应用程序。

因为我有字符串格式的日期为>>fileDate="15/03/2013"

我希望它被转换为日期格式,因为我的数据库字段是datetime.

我用了以下的东西>>

DateTime dt = DateTime.ParseExact(fileDate, "yyyyy-DD-MM", CultureInfo.InvariantCulture);

DateTime dt = DateTime.Parse(fileDate);

这两种方法都证明失败给我错误>>

String was not recognized as a valid DateTime.

什么是错误?

有没有另一种技术可以做到这一点?

4

6 回答 6

6
 string fileDate = "15/03/2013";
 DateTime dt = DateTime.ParseExact(fileDate, "dd/mm/yyyy", CultureInfo.InvariantCulture);
于 2013-03-19T06:36:59.730 回答
4

您必须根据ParseExact的日期字符串提供日期格式。您可以在自定义日期时间格式上查看更多信息 - MSDN

改变

"yyyy-MM-dd HH:ss"

"dd/MM/yyyy"

你的代码是

DateTime dt = DateTime.ParseExact(fileDate, "dd/MM/yyyy", CultureInfo.InvariantCulture);
于 2013-03-19T06:35:22.047 回答
2

你应该做这个:

DateTime dt = DateTime.ParseExact(fileDate, "dd/MM/yyyy",CultureInfo.InvariantCulture);

您必须以与传入字符串"dd/MM/yyyy"相同的样式传入 format() 字符串fileDate

于 2013-03-19T06:39:38.580 回答
2

你可以试试这个 SimpleDateFormat dateFormat = new SimpleDateFormat("MM/dd/yyyy"); 日期转换日期 = dateFormat.parse("ur_dateString")

于 2013-03-19T06:49:39.383 回答
1

在您当前的代码中,您使用的格式"yyyyy-DD-MM"是错误的,因为日期部分需要小写d而不是大写D。, 同样对于年份部分,您指定 5y秒,它应该是 4,例如yyyy,根据您的日期字符串的顺序应该是:"dd/MM/yyyy"。为了安全起见,您甚至可以使用"d/M/yyyy",它适用于一位数或两位数的日/月。

所以你的代码应该是:

string fileDate="15/03/2013";
DateTime dt = DateTime.ParseExact(fileDate, "dd/MM/yyyy", CultureInfo.InvariantCulture);

您可以在自定义日期时间格式上查看更多信息 - MSDN

于 2013-03-19T06:42:12.463 回答
0

这是因为字符串“15/03/2013”​​不能真正解析为格式字符串“yyyy-MM-dd HH:ss”的日期时间。

于 2013-03-19T06:34:59.130 回答