【发布时间】:2013-04-01 18:28:14
【问题描述】:
我正在尝试将 String (YYYY-MM-dd HH:mm) 解析为 Date,但是错误的日期比预期的要多。
代码:
Date newDate = null;
String dateTime = "2013-03-18 08:30";
SimpleDateFormat df = new SimpleDateFormat("YYYY-MM-dd HH:mm", Locale.ENGLISH);
df.setLenient(false);
try {
newDate = df.parse(dateTime);
} catch (ParseException e) {
throw new InvalidInputException("Invalid date input.");
}
生产:
2012 年 12 月 30 日星期日 08:30:00 EST(错误)
我尝试关闭 Lenient,但没有成功。
更新
感谢 Sudhanshu 的回答,它帮助我解决了 Java 转换。当我将上述代码返回的日期输入数据库时,我得到了正确的日期,但时间始终是00:00。
ps.setDate(3, new java.sql.Date(app.getDate().getTime()));
【问题讨论】:
-
对于更新,
java.sql.Date仅用于日期,用于 SQL 的日期数据类型。来自文档:“为了符合 SQL DATE 的定义,由 java.sql.Date 实例包装的毫秒值必须通过在特定时区将小时、分钟、秒和毫秒设置为零来“标准化”实例关联的对象。”
标签: java datetime simpledateformat datetime-parsing