以自定义格式解析包含日期和时间的字符串

时间:2010-04-01 13:10:52

标签: c# parsing datetime time

我有一个下一格式"ORDER20100322194007"的字符串,其中20100322是日期,194007是时间。如何解析字符串并获取包含的DateTime对象?

3 个答案:

答案 0 :(得分:85)

它始终以ORDER开头吗?

string pattern = "'ORDER'yyyyMMddHHmmss";
DateTime dt;
if (DateTime.TryParseExact(text, pattern, CultureInfo.InvariantCulture, 
                           DateTimeStyles.None,
                           out dt))
{
    // dt is the parsed value
} 
else 
{
    // Invalid string
}

如果无效的字符串应该抛出异常,那么使用DateTime.ParseExact代替DateTime.TryParseExact

如果它并不总是以“ORDER”开头,那么为了得到日期和时间部分,你需要做任何你需要的事情,并从上面的格式模式中删除“'ORDER'”。

答案 1 :(得分:9)

您可以使用DateTime.ParseExact方法指定解析时应使用的格式。

答案 2 :(得分:1)

如果你没有固定的字符串结构,说顺序不会一直存在,那么你可以使用正则表达式来分隔数字和字符,然后使用convert to datetime函数来分隔数字。