首页 > 解决方案 > SimpleDateFormat - 解析日期时出现奇怪的结果

问题描述

我目前对 SimpleDateFormatter 的以下简单用法一无所知:

 import java.text.ParseException;
 import java.text.SimpleDateFormat;

 public static void main(String[] args) throws ParseException {
    System.out.println(new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssX").parse("2018-12-04T22:22:01+1000"));
 }

我正在使用 JDK 1.8.0_192 运行此示例。

我的电脑位于 CET (+1000),因此时区相等。所以预期的结果是:

2018 年 12 月 4 日星期二 22:22:01 CET

但我得到以下输出:

2018 年 12 月 4 日星期二 13:22:01 CET

有谁知道这里发生了什么?

标签: javadatedatetimetimesimpledateformat

解决方案


你给它2018-12-04T22:22:01+1000,它是2018-12-04T12:22:01UTC。虽然 CET 比 UTC 提前 1 小时,但你会得到 hour 13


推荐阅读