我正在尝试将用户提供的日期放入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对象时遇到了同样的问题,但是时间也设置为午夜。经过一番搜索,我找不到有类似问题的人,也许有人在这看过这样的东西?
答案 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)。否则,您的月份在格式字符串中是错误的。