将VB DateTimePicker设置为某个值时的自定义输入格式

时间:2017-05-09 18:34:04

标签: vb.net date datetimepicker

可能很容易,但我无法弄明白。 在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中的值存储在该表字段中)。我也试过像

这样的东西
DatePicker.Value = New Date("20130303") 

没有成功。如何巧妙地将这样的字符串解析为另一种日期格式?我确信,有一种比使用

更有效的方法
DatePicker.Value = New Date(year, month, day)

手动将字符串拆分为4字节的年份,2个字节的月份和2个字节的日期。

谢谢你的帮助。

1 个答案:

答案 0 :(得分:1)

DateTimePicker.Value属性需要DateTime,因此您需要将列内容(它似乎是一个字符串)转换为DateTime。

设置Value属性后,DateTimePicker作业以您的应用程序所需的格式显示Date。

如果您完全确定colum中存储的格式,那么可以使用DateTime.ParseExact

Dim tb as DataTable = ds.Tables("items")
DatePicker.Value = DateTime.ParseExact(tb.Rows(0).Item(9), "yyyyMMdd", CultureInfo.InvariantCulture)

现在让我说一件事。如果使用“yyyyMMdd”之类的格式,也不要在文本列中存储日期。 DateTime值应存储在DateTime列