首页  >  文章  >  Java  >  为什么 SimpleDateFormat 在解析 Active Directory 日期时将所有日期分配为一月?

为什么 SimpleDateFormat 在解析 Active Directory 日期时将所有日期分配为一月?

DDD
DDD原创
2024-10-24 07:50:02309浏览

Why is SimpleDateFormat Assigning All Dates to January When Parsing Active Directory Dates?

SimpleDateFormat 错误地显示月份

使用日期时,准确转换数据至关重要。但是,当使用 Java 的 SimpleDateFormat 解析从 Active Directory (AD) 提取的日期时,可能会出现一个问题,即所有日期都被错误地分配为一月。

问题

在提供的代码片段中,SimpleDateFormat 使用以下模式字符串进行初始化:

SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/DD");

此模式字符串指定日期字符串的预期格式:年 (yyyy)、月 (MM) 和日 ( DD)。但是,parsedDate 值始终将月份显示为一月,无论 AD 日期中包含的实际月份如何。

解决方案

问题在于使用模式字符串中的大写“MM”。在 SimpleDateFormat 中,大写“MM”表示月份的全名,小写“MM”表示月份的两位数。

要纠正此问题,应将模式字符串修改为使用小写"MM":

SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd");

通过使用小写的“MM”,SimpleDateFormat 会正确地将月份解析为两位数,消除一月一致的问题。

以上是为什么 SimpleDateFormat 在解析 Active Directory 日期时将所有日期分配为一月?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn