在VB.NET中将字符串转换为日期时间

10

我有一个长这样的日期时间:

201210120956
ccyyMMDDhhmm

当我尝试这样做:

Dim convertedDate As Date = Date.Parse(DateString)
Return convertedDate

我得到了这个:

#10/12/2012#

我花了很多时间在这上面。

我读了这个将字符串转换为日期时间 vb.net,但当我使用datetime.ParseExact()时,我得到:

无法解析符号'ParseExact'

有没有一种方法可以不使用子字符串直接将其转换为日期时间?


应该能够使用ParseExact,自从.net2以来就一直存在。那DateTime.Parse呢? - Tony Hopkinson
2
也许我应该问一下为什么ParseExact没有被识别出来...似乎没有人看到帖子的那部分... - ErocM
当我使用DateTime.Parse()时,我会得到“字符串无法识别为有效的DateTime。” - ErocM
我不知道为什么Visual Studio之前无法识别ParseExact,但现在它可以了,并且正在工作中... - ErocM
我只是为了看看它是否也找不到DateTime.Parse而加入了这个。 - Tony Hopkinson
3个回答

24
将解码模式传递给ParseExact函数。
Dim d as string = "201210120956"
Dim dt = DateTime.ParseExact(d, "yyyyMMddhhmm", Nothing)

ParseExact仅在Net FrameWork 2.0及以上版本中可用。
如果您使用的是1.1版本,则可以使用Parse,但需要提供与您的字符串相适应的IFormatProvider。


我已经阅读了这篇关于将字符串转换为日期时间的VB.NET文章,但是当我使用datetime.ParseExact()时,我遇到了以下问题:无法解析符号“ParseExact” - ErocM
DateTime.ParseExact是.NET Framework 2.0版本以后存在的DateTime类型的方法。您正在使用哪个版本的Framework? - Steve
也许是因为我进入了项目属性,它再次查看了我的设置 :P - ErocM

1
你可以尝试使用ParseExact方法。
示例:
Dim format As String  
format = "d" 
Dim provider As CultureInfo = CultureInfo.InvariantCulture
result = Date.ParseExact(DateString, format, provider)

我已经阅读了这篇关于将字符串转换为日期时间的VB.NET文章,但是当我使用datetime.ParseExact()时,我遇到了以下问题:无法解析符号“ParseExact” - ErocM

0
作为替代方案,如果您在日期和时间之间加上一个空格,DateTime.Parse 将自动识别格式。这是最简单的方法了。(如果仍然无法识别 ParseExact

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接