在解析日期时获取奇怪的数据

时间:2014-04-07 04:47:03

标签: java postgresql parsing timestamp

我想从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

为什么它保存这样的数据我不知道。 一个问题是,它也需要一些随机时间,这也是我不想要的。 对此提出任何建议。 帮助

1 个答案:

答案 0 :(得分:3)

我认为您的SimpleDateFormat格式存在问题......

mm是“小时分钟”,而不是月份。

所以查看2013-01-09 00:08:00,您可以看到08表示小时。

我们假设您希望获得2013-08-09 00:00:00,这意味着您应该使用MM/dd/yyyy格式

查看SimpleDateFormat了解详情