问题从java.util.Date转换为java.sql.Timestamp

时间:2011-05-03 03:33:06

标签: java sql types

我正在尝试将用户提供的日期放入SQL数据库,我有以下行来处理字符串并将其转换为java.sql.Timestamp对象。

SimpleDateFormat formatter = new SimpleDateFormat("yyyy-mm-dd'T'hh:mm");
java.util.Date badDate = formatter.parse(request.getParameter("datetime")); 
Timestamp date = new Timestamp(badDate.getTime());

问题是,badDate是用户输入的正确日期,但是日期总是设置为错误的月份和日期,通常是1月2日,以及正确的时间和年份。当我尝试转换为java.sql.Date对象时遇到了同样的问题,但是时间也设置为午夜。经过一番搜索,我找不到有类似问题的人,也许有人在这看过这样的东西?

2 个答案:

答案 0 :(得分:8)

日期格式错误,应为yyyy-MM-dd'T'HH:mm

有关日期格式的详细信息,请参阅this document

m代表会议纪要 几个月M h上午/下午(1-12)的小时数 {24}小时内H小时

如果您可以提供您要解析的日期值的样本,那将会更好。

答案 1 :(得分:1)

你想要"yyyy-MM-dd'T'hh:mm"(注意大写MM)。否则,您的月份在格式字符串中是错误的。