如何从字符串中解析出日期时间并与给定格式匹配

时间:2013-12-11 23:01:47

标签: c#

我的日期时间值存储在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

2 个答案:

答案 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;
}