在程序应用中,我们经常碰到从别的地方获取的用字符串形式表示的时间,对于这种时间,通常需要将其转换为DateTime对象才能使用。
将字符串转换为对象,通常都是用Pharse方法,该方法广泛存在于.net Framework的各个类中。比如说对于字符串时间"2006-03-02 11:20:21",我们可以使用下列语句将其转换为相应日期对象。
DateTime dtime = DateTime.Parse("2006-03-02 11:20:21");
然而,我们程序中获取的字符串时间格式往往是自定义的。这些自定义区域性日期和时间字符串可能非常复杂,所以很难分析。Parse 方法尝试使用多种隐式分析模式来分析字符串,但都有可能失败。比如说上述时间如果为"20060302112021"的形式,DateTime.Parse()方法便无能为力了,这个时候我们便需要使用到另一个时间字符串解析函数----ParseExact 。对于上述时间字符串便可以用下面这条语句来实现对象解析。
DateTime dtime2 = DateTime.ParseExact("20060302112021", "yyyyMMddHHmmss", null);
关于ParseExact函数,msdn 的说明如下。
public static DateTime ParseExact (
string s,
string format,
IFormatProvider provider
)
参数
s : 包含要转换的日期和时间的字符串。
format : s 的预期格式。
provider : 用于提供有关 s 的区域性特定格式信息的IFormatProvider。
关于该函数更多信息,请参看msdn文档DateTime.ParseExact 方法。
关于format参数的格式信息,可以参看msdn文档自定义 DateTime 格式字符串。