关于C#:将此字符串转换为datetime的最有效方法

Most efficient way to convert this string to DateTime

本问题已经有最佳答案,请猛点这里访问。

我以这种格式接收日期时间=>YYYYMMDDHHMMSS,例如20160214204032

由于它的格式有些独特,我不能只使用convert.todatetime——我试过了,但它不起作用。

很容易创建一个助手方法来解析这个日期的组件,例如

var year = myString.Substring(0,4);

但我担心这可能表现不佳。

有人能想出一种更好的方法把这种格式的字符串转换成日期时间吗?


不能在Convert.ToDateTime中设置格式。因此,使用ParseExact代替。

1
2
DateTime.ParseExact("20160214204032","yyyyMMddHHmmss",
                                       System.Globalization.CultureInfo.InvariantCulture)

Due to its somewhat unique format, I can't just use Convert.ToDateTime -- I tried, it didn't work.

它失败是因为Convert.ToDateTime试图从系统日期时间格式转换,如果无法转换,则抛出异常。

使用字符串函数转换为datetime也是不好的,因此您可以这样做

1
2
3
DateTime dt = DateTime.ParseExact("20160214204032",
                                 "yyyyMMddHHmmss",
                                  System.Globalization.CultureInfo.InvariantCulture)