如何防止12:00:00成为00:00:00?

时间:2012-01-19 19:26:23

标签: java sql date

我有一个表单,用户输入广告开始时间和广告结束时间,该时间格式为“yyyy / mm / dd hh:mm:ss”,然后将此数据推送到数据库。

但是当用户输入“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

我在数据库中看到的使用SQuirreL

pic

3 个答案:

答案 0 :(得分:5)

您的问题尚不清楚,但我强烈怀疑问题只是您正在使用12小时制解析。将您的格式字符串更改为使用HH而不是hh,这可能只是解决问题:

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

您还应该考虑在解析时要使用哪个时区。我个人更喜欢在Java中使用Joda Time进行所有日期和时间操作 - 包括解析/格式化,因为SimpleDateFormat不是线程安全的,不像Joda Time的解析器。

答案 1 :(得分:3)

您的日期格式应为24小时:

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

Capital H是24,小写h是12。

答案 2 :(得分:2)