2012-01-19 2 views
0

사용자가 광고 시작 시간과 광고 종료 시간을 입력하는 양식이 있습니다. 해당 시간 형식은 "yyyy/mm/dd hh : mm : ss"이고이 데이터는 데이터베이스로 전송됩니다.12:00:00이 00:00:00이되는 것을 방지하는 방법은 무엇입니까?

하지만 사용자가 "yyyy/mm/dd 12:00:00"또는 기본적으로 12를 입력하면 24를 사용하면 데이터베이스에 00:00:00이 표시되므로 12를 입력하면됩니다. 나는 그 일이 일어나지 않도록 막는가?

SplashPageValue value = new SplashPageValue(); 
SimpleDateFormat df = new SimpleDateFormat("yyyy/MM/dd hh:mm:ss"); 

value.adStartDate = df.parse(fileUp.getString("adStartDate"));  
value.adEndDate = df.parse(fileUp.getString("adEndDate")); 

스크린 샷 아래 :

다람쥐

를 사용

the form

내가 데이터베이스에서 무엇을보고 형태

pic

+1

귀하의 질문은 매우 명확하지 않다 "또는 기본적으로 아무것도 (12)는"예를 들어, 무엇을 의미합니까? 문제 진단을 얼마나 멀리 받았습니까? 당신이 합리적으로 쉽게 문제를 증명하는 짧지 만 완전한 프로그램을 생각 해낼 수 있어야하는 것처럼 들립니다. –

답변

5

귀하의 질문은 불분명하지만, 난 강력하게 문제가 당신이 12 시간을 사용하여 분석하고 만 것입니다 생각한다. 대신 HH의 HH를 사용하도록 형식 문자열을 변경하고 잘 단지 일을 해결할 수 : 또한, 당신은 구문 분석 할 때 사용하고자하는 시간대 당신의 마음을 고려해야한다

SimpleDateFormat df = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss"); 

. 개인적으로는 Joda Time을 Java의 모든 날짜 및 시간 작업에 사용하는 것이 좋습니다. 이는 구문 분석/형식 지정을 포함하여 SimpleDateFormat은 Joda Time의 파서와 달리 스레드로부터 안전하지 않기 때문입니다.

+1

너무 빨리 나를 위해 존! –

+0

나중에 사용자가 24 시간 형식으로 시간을 입력 할 수있게하려고 했으므로 Joda Time을 사용하지 않을 것이므로 작은 것이기도합니다 (그러나 향후 프로젝트에서이를 염두에 두겠습니다). 감사!!! – iCodeLikeImDrunk

3

귀하의 날짜 형식 24 시간이어야한다 :

SimpleDateFormat df = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");

자본 H의 24이며, 소문자 시간은 12

+1

"hh"는 am/pm 단위의 시간이므로, "am"또는 "pm"구문 분석을 제대로 작동하려면 형식에 추가해야합니다. 즉, 똑바로 "HH"를 사용하지 않는 경우입니다. –

관련 문제