vb.net - vb.net 选项严格将字符串转换为日期
问题描述
我正在尝试将数据库中的字符串转换为具有这种格式“yyyy-Md”的日期类型
字符串以这种格式存储“yyyy-Md”
所以我可以使用这种格式的日期变量执行这段代码“yyyy- Md"
因为 Option Strict 已启用 Visual Studio 2019 版本 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
除了关闭 Option Strict 或仅使用格式“Md-yyyy”来运行我的测试
varToday > varFTue 似乎有效
问题是我还有哪些其他选项可以将字符串转换为日期?
下面的函数将转换两个字符串 varTESTdate & 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..
虽然我不确定尾随的“As IFormatProvider, As Date”是干什么用的
'varFTue = Date.ParseExact(varStr, "yyyy-M-d", provider As IFormatProvider, As Date)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
这是 vb 中此上下文中的语法错误,看起来像是从 C# 转换的残余工件,我们使用“as X”执行强制转换。不要假设转换器总是让所有代码都完美无缺;您几乎总是必须修复它们的输出,特别是如果仅粘贴到程序的某些部分,他们无法看到所有声明的变量(您的代码似乎不包含provider
作为变量)
推荐阅读
- java - 对 Blob 存储的 Azure 标识访问
- oracle - 在 SQL*Plus 中创建表时遇到问题
- javascript - 带有 Firebase 数据的 Angular 应用程序:为什么我会看到上一页的数据?
- python - 将文件上传到谷歌翻译器进行翻译
- javascript - Icecast 用户认证和网络音频 API
- json - 从 Python 中的列表创建 JSON
- spring - 这段代码在 Spring Boot 自定义类型级别注解中做了什么?
- reactjs - 为什么我的 Redux Store 中创建了多个嵌套状态
- python - Python3 Windows 10 中的 Pip 安装索引器错误
- java - 如何使用@JsonTypeInfo、@JsonSubType 根据兄弟字段的值确定字段类型?