将包含时间值的字符串解析为DateTime值

时间:2014-01-10 22:45:13

标签: c# datetime

我有这样的字符串:

' 630AM' , '1234PM' , '1000  '

这些是我的数据库中保存的值。

我想将它们解析为日期时间格式,我不关心的日期部分可以附加一个虚拟日期。 一种方法是只需要一堆if-else和字符串处理命令来解决它,但我觉得我们应该如何能够使用DateTime.TryParseExact并以更清洁的方式完成它。

你建议按照这些方针做什么?

1 个答案:

答案 0 :(得分:1)

这就是我处理这些问题的方法:

public DateTime convert(string date)
{
    int hour = int.Parse(date.Substring(0, 2));
    int minute = int.Parse(date.Substring(2, 2));
    if (hour < 12 && date.Substring(4, 2) == "PM")
    {
        hour = hour + 12;
    }

    return new DateTime(2014, 1, 10, hour, minute, 0);
}