私は日時の値で何時間も戦ってきました。日付の値が正しく機能するようになりましたが、まだ時間の問題が発生しています。次の点を考慮してください。
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 つの DropDownList (時間、分、および秒) で構成されるユーザー コントロールです。そのTime
プロパティは、常に次のように見える文字列ですHH:mm:ss
2012-10-26 16:00:00
mysql から datetime 値を読み取っているとします。
データベースに書き込むときはすべてスムーズに動作しますが、datetime の時刻部分を読み取ると、ucPickupTime.Time に (16:00:00 ではなく) 04:00:00 が表示されます。さらに、これをグリッドビューに読み込むと、2012/10/26 04:00:00 PM と表示されます
午前 4 時と午後 4 時の間には大きな違いがあるため、明らかにこれは受け入れられません。
これを修正するためにいくつかの方法を試しましたが、適切な方法を見つけることができず、アイデアが不足しています。
誰かが真の時間値を (データベースにあるとおりに) 保持し、それを自分のコントロールに入れる (または、少なくとも自分が望むようにフォーマットする) 方法を提案できれば、本当に感謝しています。
前もって感謝します!
**編集**
最新の変更を反映するために上記のコードを更新しました。これにより、データが正しくフォーマットされるようになりましたが、データベースにレコードを更新または挿入すると、値は次のように表示されます。
集荷日 | #12:00:00 AM# | 日付
集荷時間 | #2012/10/4 15:00:00# | 日にち
データをよく見て気づいたのは、使用されている日付値が、txtPickupDate.Text で指定された日付ではなく、常にデータが保存された日付であるように見えることです。