Java SimpleDateFormat 始终将月份误认为一月
当开发人员处理来自各种来源的日期值时,他们可能会遇到 Java SimpleDateFormat 类的实例错误地解释了日期的月份部分。将日期从 Active Directory (AD) 转换为 Java 日期时,此问题可能会出现。
提供的代码片段利用 SimpleDateFormat 将 AD 日期值解析为 Java Date 对象:
<code class="java">SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/DD");</code>
但是,提供的日期格式模式(“yyyy/MM/DD”)假定月份名称为大写“M”。这与 AD 日期值中使用的小写“M”冲突,导致每个解析的日期将月份错误地解释为一月。
解决问题
为了解决此差异,代码需要对 AD 日期采用正确的格式模式,即使用小写“m”来指定月份。此外,日期分隔符应符合 AD 标准。因此,修改后的格式模式应为:
<code class="java">SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd");</code>
通过此调整,SimpleDateFormat 将正确解析 AD 日期值,解决始终将月份误认为一月的问题,并确保日期转换准确。
以上是为什么 Java SimpleDateFormat 始终将月份与 AD 日期解释为一月?的详细内容。更多信息请关注PHP中文网其他相关文章!