我正在尝试转换日期格式为4/3/1950 12:00:00 AM
我从sql数据阅读器获取日期值
string dob =Convert.ToString(MbrNameReader[2]);
dob 字符串的输出 4/3/1950 12:00:00 AM
现在我想将此转换为 04/03/1950 12:00:00 AM
我搜索谷歌获取帮助并尝试以这种方式执行此操作,这会抛出错误ParseExact有一些无效的参数
DateTime dob =Convert.ToDateTime(MbrNameReader[2]);
var date = DateTime.ParseExact(dob, "MM/d/yyyy hh:mm:ss", CultureInfo.InvariantCulture, DateTimeStyles.None);
后来改为:
string dob =Convert.ToString(MbrNameReader[2]);
var date = DateTime.ParseExact(dob, "MM/d/yyyy hh:mm:ss", CultureInfo.InvariantCulture, DateTimeStyles.None);
,它给出了以下错误:
Exception thrown executing coded step: '[VerifyAlerts_CodedStep4] : Verify the content of 'divs' with database contents'.
InnerException:
System.FormatException: String was not recognized as a valid DateTime.
at System.DateTimeParse.ParseExact(String s, String format, DateTimeFormatInfo dtfi, DateTimeStyles style)
at System.DateTime.ParseExact(String s, String format, IFormatProvider provider, DateTimeStyles style)
at Communicator.VerifyAlertContentsfirstFive.VerifyAlerts_CodedStep4() in c:\tfs\HASINC\Development\QAAutomation\Communicator\Alerts\VerifyAlertContents_firstFive.tstest.cs:line 190
有人可以让我知道我在这里做错了吗?
答案 0 :(得分:4)
如果MbrNameReader[2]
已经是DateTime
,则无需重新解析它。转换为DateTime
后,只需致电.ToString
with the desired format:
DateTime dob = (DateTime)MbrNameReader[2];
string formatted = dob.ToString(
"MM/dd/yyyy hh:mm:ss tt",
CultureInfo.InvariantCulture);
答案 1 :(得分:0)
要获得精确的“格式”,您需要将其作为字符串:
string s = string.Format("{0:MM/dd/yyyy hh:mm:ss tt}", dateTimeValue);
答案 2 :(得分:0)
我会看两个不同的问题:
System.DateTimeParse.ParseExact因其中一个原因here
我相信您希望您的日期时间格式字符串为:
" MM / dd / yyyy hh:mm:ss tt"