2012-10-03 2 views
0

나는 datetime 값으로 몇 시간 동안 싸워 왔습니다. 나는 지금 날짜 값을 올바르게 작동하지만 시간은 여전히 ​​나에게 어려움을주고있다. 다음 고려 :날짜 및 시간과의 전투

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에서 datetime 값 2012-10-26 16:00:00을 읽고 있다고 가정합니다.

데이터베이스에 쓸 때 모든 것이 원활하게 작동하지만 datetime의 시간 부분을 읽으면 04:00:00 (16:00:00과 반대되는)에 나타납니다. ucPickupTime.Time. 내가있는 gridview에이 글을 읽을 때 또한, 그것은 2012년 10월 26일으로 나타납니다 오후 4시 0분 0초

내가 해봤 오전 4시 오후 4시

사이에 큰 차이가있다로 분명히 이것은 용납 할 이 문제를 해결하는 여러 가지 방법이 있지만 올바른 아이디어를 찾을 수 없었고 아이디어가 부족합니다.

나를 진정한 시간 가치 (정확하게 데이터베이스에있는 그대로)로 유지하고 그것을 내 컨트롤에 넣거나 (적어도 내가 원하는 방식으로 포맷하는) 방법을 제안 할 수 있다면, 고맙습니다.

미리 감사드립니다.

** 수정 **
위의 코드를 최신 변경 사항을 반영하도록 업데이트했습니다. 이제 데이터 형식이 올바르게 지정되지만 레코드를 업데이트하거나 데이터베이스에 삽입하면 값은 다음과 같이 나타납니다.

PickupDate | # 12 : 00 : 00 AM # | 날짜
PickupTime | # 10/4/2012 오후 3:00:00 # | 날짜

내가 가까이 데이터를 찾고 나타났습니다은 사용 된 날짜 값이 항상 데이터가 저장 된 날짜가 아닌 txtPickupDate.Text

+0

당신의 데이터에서 4PM을 읽는 것 같습니다. 같은 ** ** 16:00:00입니다. 어떻게 그리드 뷰를 채우고 있습니까? –

+0

@MarkHall 그냥 데이터 판독기에서 서식이 전혀 없음 :''DataFormatString = "{0 : yyyy/MM/dd를 추가하기 위해 – Ortund

+0

이 변경되었습니다. HH : mm : ss} "'및 그리드 뷰가 올바르게 표시되지 않습니다. – Ortund

답변

1

txtPickupDate에 지정된 날짜 것으로 보인다는 것이다. Text = value.ToString ("HH : mm : ss")

+0

이상적으로 getter는 Date.ParseExact도 사용해야합니다. –

+0

날짜는 내가 여기에서 고투하고있는 것이 아니다. 그러나 이것은 나에게 생각을 주었다. – Ortund