我面临一个问题。
我使用以下方法制作价值的日期。
字符串值类似于此= "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)
工作正常.......
答案 0 :(得分:1)
使用日期格式字符串“d / M / yyyy h:m:s tt”。这将处理两种情况,即有和没有前导零的日和月。另外,由于您的实际变量除了日期之外还有一个时间组件,因此您还需要添加格式字符串以用于解析时间。
但是,我建议你使用TryParseExact
,它将根据解析的成功或失败返回布尔值,而不是抛出异常。
Demo使用TryParseExact
以及相应的格式字符串。