как предотвратить превращение 12:00:00 в 00:00:00? - PullRequest
0 голосов
/ 19 января 2012

У меня есть форма, в которой пользователь вводит время начала и окончания объявления, формат этого времени: «гггг / мм / дд чч: мм: сс», затем эти данные передаются в базу данных.

НО, когда пользователь вводит "гггг / мм / дд 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

что я вижу в базе данных, используя SQuirreL

pic

Ответы [ 3 ]

5 голосов
/ 19 января 2012

Ваш вопрос неясен, но я сильно подозреваю, что проблема в том, что вы анализируете с использованием 12-часовых часов.Измените форматную строку, чтобы использовать HH вместо hh, и это может просто исправить ситуацию:

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

Вы также должны учитывать, какой часовой пояс вы хотите использовать при разборе.Лично я предпочитаю использовать Joda Time для всех операций с датой и временем в Java - в том числе для синтаксического анализа / форматирования, поскольку SimpleDateFormat не является потокобезопасным, в отличие от анализаторов Joda Time.

3 голосов
/ 19 января 2012

Ваш формат даты должен быть 24 часа:

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

Заглавные H - 24, строчные h - 12.

2 голосов
/ 19 января 2012
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...