java - SimpleDateFormat - 解析日期时出现奇怪的结果

标签 java date datetime time 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),因此时区相同。所以预期的结果是:

Tue Dec 04 22:22:01 CET 2018

但我得到以下输出:

Tue Dec 04 13:22:01 CET 2018

有人知道这里发生了什么吗?

最佳答案

您输入 2018-12-04T22:22:01+1000,即 UTC 格式的 2018-12-04T12:22:01。虽然 CET 比 UTC 早 1 小时,所以您得到的是 13 小时。

关于java - SimpleDateFormat - 解析日期时出现奇怪的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53614582/

相关文章:

java - sql查询按日期和时间获取数据

php - 碳 "Hour can not be higher than 12"

python - 日期时间模式在 python 中不匹配,即使 bash 识别它

java - 如何使用打印对话框打开使用 Flying-saucer/itext 创建的 PDF

java - 网络模式与非网络模式的区别

java - 不幸的是,我的应用程序已在 Android 模拟器中停止

java - 如何在 java 中的单个 HTTP 请求中发送对象和文件?

c# - 从今天开始查找接下来的 5 个工作日

c++ - 用于解析 C++ 中重复日期描述的库?

c# - 如何在 .NET 中获取夏令时期间的 UTC 偏移量