SimpleDateFormat 错误地解析“YYYY-MM-dd HH:mm”
尝试解析格式为“YYYY-MM”的字符串时-dd HH:mm" 到日期,一些开发人员遇到意外的日期结果。当使用 SimpleDateFormat 类并将 lenient 设置设置为 false 时,会发生这种情况。
以下代码片段演示了该问题:
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)
要解决此问题,请验证指定的年份格式SimpleDateFormat 模式中是小写“yyyy”而不是大写"YYYY."
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm", Locale.ENGLISH);
通过进行此调整,代码将解析正确的“YYYY-MM-dd HH:mm”字符串。有关更多信息,请参阅 SimpleDateFormat 文档。
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3