【问题标题】:issue with string to datetime conversion in vb.netvb.net中字符串到日期时间转换的问题
【发布时间】:2015-12-10 04:54:43
【问题描述】:

我有日期格式为 16 Oct 2015 12:05:29:000 的字符串,我将它放在 DateString 变量中。

我正在使用以下代码行将其转换为日期格式。

Dim FormattedDate As Date = Date.ParseExact(DateString, "dd mmm yyyy HH:mm:ss.FFF", System.Globalization.CultureInfo.InvariantCulture)

我收到以下错误。 字符串未被识别为有效的日期时间

我做错了什么?

【问题讨论】:

    标签: vb.net datetime


    【解决方案1】:

    您的代码几乎是正确的,只需要修复现有格式字符串中的两件事,即。 dd mmm yyyy HH:mm:ss.FFF

    1.) dd mmm yyyy HH:mm:ss.FFF - 这里月份名称的格式应该是MMM,因为你想得到Oct(16 Oct 2015 12:05:29:000)

    2.) 12:05:29:000 是字符串中的时间,但您试图将其解析为 HH:mm:ss.FFF :000 到 .FFF 会产生错误

    最后的代码应该是

    您必须使用dd MMM yyyy HH:mm:ss:FFF 而不是dd mmm yyyy HH:mm:ss.FFF

    Dim FormattedDate As Date = Date.ParseExact(dateString, _
                                                        "dd MMM yyyy HH:mm:ss:FFF", _
                                                        System.Globalization.CultureInfo.InvariantCulture)
    

    DEMO

    【讨论】:

      【解决方案2】:

      试试这个

      Dim datestring = "16 Oct 2015 12:05:29.000"
      Dim FormattedDate As Date = Format(CDate(datestring), "dd MMM yyyy HH:mm:ss.FFF")
      

      或与您尝试的方式相同

      Dim datestring = "16 Oct 2015 12:05:29.000"
      Dim FormattedDate As Date = Date.ParseExact(datestring, "dd MMM yyyy HH:mm:ss.FFF", System.Globalization.CultureInfo.InvariantCulture)
      

      您使用mmm 而不是MMM 表示三个字母的月份。请仔细查看您指定的日期字符串和格式。存在导致字符串无法识别问题的差异。

      【讨论】:

        猜你喜欢
        • 2010-10-19
        • 2011-07-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-10-03
        • 2016-03-13
        相关资源
        最近更新 更多