将 VB DateTimePicker 设置为特定值时的自定义输入格式
Custom Input Format when Setting an VB DateTimePicker to a certain value
可能很简单,但我真的想不通。
在 VB 中,我有一个 DateTimePicker。我能够设置日期并将该日期以不同的格式存储到数据库中(不幸的是,这不是可选的)。
我以 dd.MM.yyyy 格式输入日期,代码使用
将其作为 yyyymmdd 很好地存储在数据库中
foo = DatePicker.Value.ToString("yyyyMMdd"))
问题是相反的:我从数据库中读取了 yyyyMMdd 中的日期,并想将 DateTimePicker 设置为该值,但它仍必须将值显示为 dd.MM.yyyy.
DatePicker.Value = ds.Tables("items").Rows(0).Item(9)
不起作用(yyyyMMdd 中的值存储在该 table 字段中)。我也试过类似
DatePicker.Value = New Date("20130303")
没有成功。如何巧妙地将这样的字符串解析为另一种日期格式?我敢肯定,有一种比使用
更有效的方法
DatePicker.Value = New Date(year, month, day)
手动将字符串拆分为 4 字节年、2 字节月和 2 字节日后。
谢谢你的帮助。
卢克
DateTimePicker.Value 属性需要 DateTime,因此您需要将列内容(看起来是字符串)转换为 DateTime。
设置值 属性 后,DateTimePicker 将以您的应用程序要求的格式显示该日期。
如果您完全确定存储在列中的格式,那么您可以使用 DateTime.ParseExact
Dim tb as DataTable = ds.Tables("items")
DatePicker.Value = DateTime.ParseExact(tb.Rows(0).Item(9), "yyyyMMdd", CultureInfo.InvariantCulture)
现在我来说一件事。如果您使用 "yyyyMMdd" 这样的格式,也不要将日期存储在文本列中。 DateTime 值应存储在 DateTime 列中
可能很简单,但我真的想不通。 在 VB 中,我有一个 DateTimePicker。我能够设置日期并将该日期以不同的格式存储到数据库中(不幸的是,这不是可选的)。
我以 dd.MM.yyyy 格式输入日期,代码使用
将其作为 yyyymmdd 很好地存储在数据库中foo = DatePicker.Value.ToString("yyyyMMdd"))
问题是相反的:我从数据库中读取了 yyyyMMdd 中的日期,并想将 DateTimePicker 设置为该值,但它仍必须将值显示为 dd.MM.yyyy.
DatePicker.Value = ds.Tables("items").Rows(0).Item(9)
不起作用(yyyyMMdd 中的值存储在该 table 字段中)。我也试过类似
DatePicker.Value = New Date("20130303")
没有成功。如何巧妙地将这样的字符串解析为另一种日期格式?我敢肯定,有一种比使用
更有效的方法DatePicker.Value = New Date(year, month, day)
手动将字符串拆分为 4 字节年、2 字节月和 2 字节日后。
谢谢你的帮助。
卢克
DateTimePicker.Value 属性需要 DateTime,因此您需要将列内容(看起来是字符串)转换为 DateTime。
设置值 属性 后,DateTimePicker 将以您的应用程序要求的格式显示该日期。
如果您完全确定存储在列中的格式,那么您可以使用 DateTime.ParseExact
Dim tb as DataTable = ds.Tables("items")
DatePicker.Value = DateTime.ParseExact(tb.Rows(0).Item(9), "yyyyMMdd", CultureInfo.InvariantCulture)
现在我来说一件事。如果您使用 "yyyyMMdd" 这样的格式,也不要将日期存储在文本列中。 DateTime 值应存储在 DateTime 列中