与日期和时间战斗

时间:2012-10-03 14:20:52

标签: mysql vb.net date datetime time

我一直在与日期时间值争夺数小时。我现在有正确的日期值,但时间仍然给我带来麻烦。请考虑以下事项:

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个DropDownLists(小时,分钟和秒)组成。它的Time属性是一个总是看​​起来像HH:mm:ss

的字符串

假设我正在从mysql中读取日期时间值2012-10-26 16:00:00

写入数据库时​​,一切都运行顺畅,但是,当我正在读取日期时间的时间部分时,我回到04:00:00(而不是16:00:00)出现在ucPickupTime中。时间。此外,当我将其读入gridview时,它显示为2012/10/26 04:00:00 PM

显然这是不可接受的,因为凌晨4点到4点之间存在很大差异

我已经尝试了很多方法来纠正这个问题,但是却找不到合适的方法,而且我的想法已经用完了。

如果有人可以建议我保留真实时间值的方式(就像在数据库中一样)并将其置于我的控制之下(或者至少按我想要的方式格式化),我真的很感激它

提前致谢!

**编辑**
我已更新上面的代码以反映最新的更改。现在,这会正确格式化数据,但在更新或将记录插入数据库时​​,值显示如下:

  

PickupDate | #12:00:00 AM#|日期
  PickupTime | #10/4/2012 3:00:00 PM#|日期

我注意到更接近数据的是,使用的日期值似乎始终是保存数据的日期,而不是txtPickupDate.Text中指定的日期

1 个答案:

答案 0 :(得分:1)

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