vb.net选项严格将字符串转换为日期



我正在尝试将字符串从数据库转换为具有此格式的日期类型"yyyy-M-d">
字符串以这种格式存储"yyyy-M-d">
所以我可以使用此格式的日期变量执行此代码"yyyy-M-d">
因为选项严格是ON Visual Studio 2019 ver 16.7.5是不快乐的

If gvTorF = "False" And varToday > varFTue Then

首先我不确定这是必要的,但我读到的关于比较日期的帖子使这个建议
这是我的变量

Dim varToday As Date
Dim varFTue As Date
Dim varStr As String

接下来,我点击一个按钮从数据库中获取数据,下面的代码

Public Sub GetDateInfo()
Using conn As New SQLiteConnection($"Data Source = '{gv_dbName}';Version=3;")
conn.Open()
Using cmd As SQLiteCommand = New SQLiteCommand($"SELECT * FROM DateInfoTable WHERE DID = '1'", conn)
Using rdr As SQLite.SQLiteDataReader = cmd.ExecuteReader
While rdr.Read()
varTorF = rdr("ditORf").ToString
'varFTue = CDate(rdr("diTESTdate")) 'shows as 10/26/2021
'varFTue = Date.ParseExact(varStr, "yyyy-M-d", provider As IFormatProvider, As Date)
'Tried line of code above this can NOT format correct 
varTESTdate = CType(rdr("diTESTdate"), String) 'shows as 2021-10-26
End While
rdr.Close()
End Using
End Using
End Using
End Sub

除了将选项严格关闭或使用格式"M-d-yyyy"运行我的测试
Where varToday>varFTue似乎工作
问题是我的其他选项是什么,使从字符串到日期的转换?

下面的函数将转换两个字符串varTodayStr
varTESTdate来自数据库,varTodayStr是在函数bothDates中创建的
这是函数和按钮点击事件背后的调用

bothDates(varTESTdate, varTodayStr)
Public Function bothDates(ByVal varTESTdate As String, ByVal varTodayStr As String) As Object
result1 = Date.ParseExact(varTESTdate, "yyyy-M-d", provider:=Nothing)
Dim dateToday = Date.Today
varTodayStr = dateToday.ToString("yyyy-M-d")
result2 = Date.ParseExact(varTodayStr, "yyyy-M-d", provider:=Nothing)
Return (result1, result2)
End Function

您的代码中似乎已经进行了转换

Dim d = DateTime.ParseExact("2026-10-26", "yyyy-M-d", Nothing) 'or provide a culture instead of Nothing..

虽然我不确定后面的"作为IFormatProvider,作为日期">

'varFTue = Date.ParseExact(varStr, "yyyy-M-d", provider As IFormatProvider, As Date)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

在vb中这是一个语法错误,看起来像是c#中使用"作为X"转换的残余产物。执行强制类型转换。不要想当然地认为转换程序在任何时候都能得到完美的代码;你几乎总是需要修复他们的输出,特别是如果只粘贴程序的一部分,他们不能看到所有声明的变量(你的代码似乎不包含provider作为变量)

最新更新