SimpleDateFormatter.parse 提供意外的输出格式
在您的代码中,您遇到了 SimpleDateFormatter.format 和 SimpleDateFormatter.parse 产生的差异不同的输出格式。让我们深入研究此行为背后的原因。
SimpleDateFormatter 类需要日期格式和时区信息才能正确操作日期。在您的情况下,您指定的格式为“dd/MM/yyyy hh:mm:ss a”(例如,23/05/2018 03:30:00 PM)。但是,当您使用相同的格式解析格式化的日期时,由于格式中的“a”(代表 AM/PM 名称),它会识别 IST(印度标准时间)时区。
This意味着 SimpleDateFormatter.parse 使用 IST 时区解释日期,从而产生您观察到的时间戳:“Wed May 23 15:30:00 IST 2018”。此格式与您最初指定的格式不同,因为它包含时区信息。
要解决此问题,请考虑以下解决方案:
总之,SimpleDateFormatter.format 和 SimpleDateFormatter.parse 之间的差异是由于时区考虑而产生的。通过利用 java.time API 或在 SimpleDateFormatter 中显式管理时区,您可以避免这些格式不一致并确保一致的日期处理。
以上是为什么 SimpleDateFormat.parse 会产生意外的输出格式?的详细内容。更多信息请关注PHP中文网其他相关文章!