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中文网其他相关文章!