我已经与日期时间值斗争了几个小时。我现在的日期值工作正常,但时间仍然给我带来麻烦。考虑以下:
Private _pickupDate As DateTime
Public Property PickupDate As DateTime
Get
Return _pickupDate
End Get
Set(ByVal value As DateTime)
_pickupDate = value
txtPickupDate.Text = value.ToString("yyyy/MM/dd")
End Set
End Property
Public Property PickupTime As DateTime
Get
Return DateTime.Parse(ucPickupTime.Time)
End Get
Set(value As DateTime)
ucPickupTime.Time = value.ToString("HH:mm:ss")
End Set
End Property
请注意: ucPickupTime 是一个用户控件,由 3 个下拉列表(小时、分钟和秒)组成。它的Time
属性是一个总是看起来像的字符串HH:mm:ss
假设我正在2012-10-26 16:00:00
从 mysql 读取日期时间值。
写入数据库时,一切正常,但是,当我读取日期时间的时间部分时,我将返回 ucPickupTime.Time 中出现的 04:00:00(而不是 16:00:00)。此外,当我将其读入网格视图时,它显示为 2012/10/26 04:00:00 PM
显然这是不可接受的,因为凌晨 4 点和下午 4 点之间存在很大差异
我已经尝试了很多方法来纠正这个问题,但就是找不到合适的方法,而且我的想法已经不多了。
如果有人可以为我建议一种方法来保持真实的时间值(就像它在数据库中一样)并将其置于我的控制之下(或者至少按照我想要的方式对其进行格式化),我将非常感激。
提前致谢!
** 编辑 **
我已经更新了上面的代码以反映最新的变化。这现在可以正确格式化数据,但是当更新或将记录插入数据库时,值如下所示:
取件日期 | #12:00:00 AM# | 日期
取件时间 | #10/4/2012 下午 3:00:00# | 日期
我注意到仔细观察数据是使用的日期值似乎总是保存数据的日期,而不是 txtPickupDate.Text 中指定的日期