【问题标题】:Most efficient way to convert this string to DateTime [duplicate]将此字符串转换为 DateTime 的最有效方法 [重复]
【发布时间】:2016-05-25 21:14:40
【问题描述】:

我收到这种格式的 DateTime => yyyyMMddHHmmss 例如20160214204032

由于其格式有些独特,我不能只使用 Convert.ToDateTime —— 我试过了,但没有用。

创建一个解析这个日期的组成部分的辅助方法很容易,例如

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

但我担心这可能性能不佳。

谁能想到将这种格式的字符串转换为 DateTime 的更好方法?

【问题讨论】:

标签: c# datetime


【解决方案1】:

由于它的格式有些独特,我不能只使用 Convert.ToDateTime —— 我试过了,但没有用。

它失败是因为Convert.ToDateTime 尝试从您的系统日期时间格式转换,如果不能,则抛出异常。

使用字符串函数也不好转换为 DateTime 所以你可以这样做

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

【讨论】:

  • 这应该是一条评论
【解决方案2】:

您不能在Convert.ToDateTime 中设置格式。所以,请改用ParseExact

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-03
    • 2014-01-15
    • 1970-01-01
    • 2018-06-10
    相关资源
    最近更新 更多