我一直與日期時間值打架幾個小時。我現在的日期值是正確的,但時間依然給我帶來麻煩。考慮以下幾點:與日期和時間戰鬥
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.Time。此外,當我讀到這成爲一個gridview,它顯示爲2012年10月26日下午4點零零分00秒
顯然,這是不可接受的,因爲有我試過凌晨4點到下午4點
之間有很大的區別有很多方法可以解決這個問題,但是一直沒有找到合適的方法,而且我的想法已經過時。
如果任何人都可以建議一種方法讓我保持真正的時間價值(正如它在數據庫中一樣),並將其置於我的控制範圍內(或至少按照我想要的方式進行格式化),我真的欣賞它。
在此先感謝!
**編輯**
我已更新上述代碼以反映最新更改。這現在格式化數據正確,但更新或插入到數據庫中的記錄時,值顯示如下:
PickupDate | #12:00:00 AM#|日期
PickupTime | #10/4/2012 3:00:00 PM#|日期
我已經注意到在看數據更接近的是,使用的日期值似乎永遠是在其上保存的數據的日期,而不是在txtPickupDate.Text
看起來您正在從您的數據中讀取4PM,這是** 16:00:00的** **。你如何填寫你的GridView? –
@MarkHall只是從數據讀取器,沒有任何格式:' ' –
Ortund
改變它添加'DataFormatString =「{0:yyyy/MM/dd HH: mm:ss}「'並且gridview正確顯示不是至少 – Ortund