可能很容易,但我无法弄明白。 在VB中,我有一个DateTimePicker。我可以设置一个日期并以不同的格式将该日期存储到数据库中(不幸的是非可选)。
我以dd.MM.yyyy格式输入日期,代码很好地使用
将其存储为数据库中的yyyymmddfoo = 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个字节的日期。
谢谢你的帮助。
路
答案 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列
中