我有一个表单,用户输入广告开始时间和广告结束时间,该时间的格式为“yyyy/mm/dd hh:mm:ss”,然后将此数据推送到数据库。
但是当用户输入“yyyy/mm/dd 12:00:00”或基本上任何 12 时,当我使用 24 时它不起作用,当我输入 12 时数据库显示 00:00:00。我该怎么办防止这种情况发生?
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 在数据库中看到的内容
最佳答案
你的问题不清楚,但我强烈怀疑问题在于你正在使用 12 小时时钟进行解析。更改格式字符串以使用 HH 而不是 hh,这很可能会解决问题:
SimpleDateFormat df = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
请注意,您还应该考虑在解析时要使用哪个时区。我个人更喜欢使用 Joda Time适用于 Java 中的所有日期和时间操作 - 包括解析/格式化,因为与 Joda Time 的解析器不同,SimpleDateFormat
不是线程安全的。
关于java - 如何防止12 :00:00 from becoming 00:00:00?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8932050/