我想从Textbox收到的字符串中解析日期,但是某些部分的值没有被解析并给了我一些默认值并存储在我的数据库中:
在我的数据库中,我在postgresql中使用了没有时区的字段类型时间戳。
以下是我的代码:
Timestamp ts= null;
SimpleDateFormat dateFormat = new SimpleDateFormat("mm/dd/yyyy");
Date convertedDate = dateFormat.parse(command.getHolidayDate());
System.out.println("Date ::" + convertedDate);
System.out.println("T :: "+convertedDate.getTime());
System.out.println("Received :: "+command.getHolidayDate());
ts = new Timestamp(convertedDate.getTime());
entity.setHolidayDate(ts);
这里entity.setHolidayDate将收到的日期存储到DB。
System.our.println结果:
Date ::Wed Jan 09 00:08:00 IST 2013
T :: 1357670280000
Received :: 08/09/2013
我输入以下日期到文本框:
08/09/2013
在我的数据库表中,它存储为:
2013-01-09 00:08:00
为什么它保存这样的数据我不知道。 一个问题是,它也需要一些随机时间,这也是我不想要的。 对此提出任何建议。 帮助
答案 0 :(得分:3)
我认为您的SimpleDateFormat
格式存在问题......
mm
是“小时分钟”,而不是月份。
所以查看2013-01-09 00:08:00
,您可以看到08
表示小时。
我们假设您希望获得2013-08-09 00:00:00
,这意味着您应该使用MM/dd/yyyy
格式
查看SimpleDateFormat
了解详情