【发布时间】:2019-10-30 20:39:47
【问题描述】:
我想将 DateTime.Now 插入为 dd-MMM-yyyy 格式,但是当我使用 ParseExact 时,它给了我字符串未被识别为有效日期时间。
db.AddInParameter(objdbCommand, "@dtAddedOn", DbType.DateTime, DateTime.ParseExact(Convert.ToString(DateTime.Now), @"dd-MMM-yyyy", System.Globalization.CultureInfo.InvariantCulture));
我也试过了:
DateTime.ParseExact(Convert.ToString(DateTime.Now), @"dd-MMM-yyyy HH:mm:ss", System.Globalization.CultureInfo.InvariantCulture));
但它给了我同样的错误
【问题讨论】:
-
尝试输出
Convert.ToString(DateTime.Now)给你的东西......还有,为什么要把它变成一个字符串然后再解析回来?这是完全没有必要的。 -
你为什么要转换它,你只是想使用 DateTime.now,作为一个日期时间,为什么要把它作为文本并告诉编译器你正在发送日期时间
-
试试:
db.AddInParameter(objdbCommand, "@dtAddedOn", DbType.DateTime, DateTime.Now); -
原因是 Fildor 和我说的工作是 datetime 不是字符串,因此它没有“格式”它是二进制值
-
你想试试 DateTime.ParseExact(DateTime.Now.ToString("dd-MMM-yyyy HH:mm:ss"), @"dd-MMM-yyyy HH:mm:ss") ,这是没有意义的/低效的。 @Fildor 有更好的答案。 Convert.ToString 可能正在使用您的默认 CultureInfo,因此不匹配。如果要去除日期部分,只需使用 DateTime.Now.Date 而不是 DateTime.Now。从您的问题中不清楚您想要哪一个。
标签: c#