2010-04-01 115 views
37

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

+1

这是一个很好的问题。也许你应该改变标题为“.NET中的自定义日期格式的日期时间解析” – 2010-04-01 13:32:25

+0

好吧,我同意你的意见。 – akrisanov 2010-04-01 14:07:05

回答

76

它会始终以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'”。

1

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

相关问题