0

我已经与日期时间值斗争了几个小时。我现在的日期值工作正常,但时间仍然给我带来麻烦。考虑以下:

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 中指定的日期

4

1 回答 1

1

txtPickupDate.Text = value.ToString("HH:mm:ss")

于 2012-10-03T14:47:43.427 回答