java - 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
有谁知道这里发生了什么?
解决方案
你给它2018-12-04T22:22:01+1000
,它是2018-12-04T12:22:01
UTC。虽然 CET 比 UTC 提前 1 小时,但你会得到 hour 13
。
推荐阅读
- azure - Azure 搜索 - 部分短语匹配
- html - CSS 在网格中定位粘性侧边栏
- .net-core - 为生产禁用控制器 API 端点
- javascript - 设置最大边界不起作用传单
- c# - WPF C#:我的文本编辑器应该是文本文件的默认程序吗?
- c# - 如何在c#中确认进程关闭
- asp.net-mvc - 使用插件更改样式后,jquery 不再填充 MVC 5 选择下拉列表
- haskell - 在 Haskell 中查找给定树中的最大分支
- vuetify.js - 更改 vuetify UI 组件的基本语言
- amazon-dynamodb - CSV/parquet 到 Dynamo,约 50 万行的小文件,只有两列