java – 解析“YYYY-MM-dd HH:mm”时,SimpleDateFormat产生错误的日期时间
作者:互联网
我试图将字符串(YYYY-MM-dd HH:mm)解析为日期,但是日期错误比预期错误.
码:
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.");
}
生产:
Sun Dec 30 08:30:00 EST 2012 (wrong)
我试过设置Lenient但没有运气.
更新
感谢Sudhanshu的回答,它帮助我解决了Java转换问题.当我从上面的代码输入返回的日期到数据库时,我正确地得到日期,但时间总是00:00.
ps.setDate(3, new java.sql.Date(app.getDate().getTime()));
解决方法:
YYYY应该是yyyy-
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm", Locale.ENGLISH);
请在此处查看SimpleDateFormat的文档
Java 6:http://docs.oracle.com/javase/6/docs/api/java/text/SimpleDateFormat.html
Java 7:http://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html
标签:datetime-parsing,java,datetime,simpledateformat 来源: https://codeday.me/bug/20190916/1808249.html