我的日期时间值存储在12/03/2013 12:00 am的列中,我试图从另一列解析日期,这是一个字符串,所以我检查日期时间是否是一个有效的日期。我无法弄清楚格式,yyyy-mm-dd hh:mm tt似乎没有使条件成立。
string[] format = new string[] { "yyyy-mm-dd hh:mm tt" };
DateTime datetime;
//12/03/2013 12:00 am
if (DateTime.TryParseExact(userFilters.FilterValue, format, CultureInfo.InvariantCulture, DateTimeStyles.NoCurrentDateDefault, out datetime))
{
DateEntered = datetime;
}
修改
在列中,值存储为 2012-07-02 13:08:39.347
答案 0 :(得分:3)
如果这是代码中注释的示例日期字符串:
12/03/2013 12:00 am
为什么要以格式字符串中的年份开头?
这应该有效:
string[] format = new string[] { "MM/dd/yyyy hh:mm tt" };
答案 1 :(得分:2)
问题:
1.如果评论中提供的日期字符串为12/03/2013 12:00 am
,则应从month
开始,而不应以year
开头。
2.您需要使用/
作为分隔符,而不是-
。
3.您需要使用大写MM
来代表month
,因为小mm
用于表示minutes
<强>解决方案:强>
string[] format = new string[] { "MM/dd/yyyy hh:mm tt" };
DateTime datetime;
//12/03/2013 12:00 am
if (DateTime.TryPars eExact(userFilters.FilterValue, format, CultureInfo.InvariantCulture, DateTimeStyles.NoCurrentDateDefault, out datetime))
{
DateEntered = datetime;
}