SimpleDateFormat “YYYY-MM-dd HH:mm”的日期解析不正确
问题:
使用 SimpleDateFormat,尝试将“YYYY-MM-dd HH:mm”格式的字符串解析为日期会产生错误的日期。尽管设置了setLenient(false),结果仍然不准确。造成这种差异的原因是什么?
A:
问题在于使用的格式字符串:“YYYY-MM-dd HH:mm”。解析给定格式的字符串的正确格式字符串应该是“yyyy-MM-dd HH:mm”,其中“yyyy”表示四位数字的年份。
SimpleDateFormat 的文档指定“the日期部分必须采用 JDK 预定义格式之一,时间部分必须采用预定义时间格式之一,并且日期和时间之间的分隔符只能是预定义分隔符之一。”有关更多详细信息,请参阅 SimpleDateFormat 文档。
<code class="java">SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm", Locale.ENGLISH);</code>
通过将格式字符串修改为“yyyy-MM-dd HH:mm”,解析应生成正确的日期和时间。
以上是为什么 SimpleDateFormat 无法解析 \'YYYY-MM-dd HH:mm\' 尽管有 `setLenient(false)`?的详细内容。更多信息请关注PHP中文网其他相关文章!