如何在vb.net中将字符串转换为日期

时间:2014-08-14 11:12:00

标签: vb.net datetime

我面临一个问题。

我使用以下方法制作价值的日期。 字符串值类似于此= "01/12/2002" like "dd/MM/YYYY"

我的问题是。

两个字符串值

- →1)2025年1月1日
- →2)2025年1月1日

我得到的价值超过1或2

Dim d As Date = DateTime.ParseExact(dumm, "dd/MM/yyyy", Nothing)

如果1出现什么都不会发生但是 如果我得到2我面临像String这样的错误未被识别为有效的DateTime。 根据我的分析师,我理解的是日期应该是2位数剩余所有是两位数其他明智的给出错误。 但有时我从excel到vb.net获得个位数

我该如何解决这个问题...

Dim dumm As String = DtSet3.Tables(0).Rows(k + 0).Item(3).ToString
Dim d As Date = DateTime.ParseExact(dumm, "d/M/yyyy", Nothing)

我把断点放在dumm ok dumm vlaues =" 1/2/2026 12:00:00 Am"

错误...............

现在

Dim dumm As String = DtSet3.Tables(0).Rows(k + 0).Item(3).ToString
Dim d As Date = DateTime.ParseExact("01/02/2026", "dd/MM/yyyy", Nothing)

工作正常.......

1 个答案:

答案 0 :(得分:1)

使用日期格式字符串“d / M / yyyy h:m:s tt”。这将处理两种情况,即有和没有前导零的日和月。另外,由于您的实际变量除了日期之外还有一个时间组件,因此您还需要添加格式字符串以用于解析时间。

但是,我建议你使用TryParseExact,它将根据解析的成功或失败返回布尔值,而不是抛出异常。

Demo使用TryParseExact以及相应的格式字符串。