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

iCo*_*unk 0 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"));
Run Code Online (Sandbox Code Playgroud)

截图如下:

表格

表格

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

PIC

Jon*_*eet 5

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

SimpleDateFormat df = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
Run Code Online (Sandbox Code Playgroud)

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