我有一个表单,用户输入广告开始时间和广告结束时间,该时间格式为“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"));
以下屏幕截图:
表格
我在数据库中看到的使用SQuirreL
答案 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)