java - 将日历对象的时区从 EEST 更改为 HST 会意外更改时间
问题描述
我有一些TimeStamp
,我有日期格式"EEEE, MMM dd, yyyy hh:mm a zzz"
。但我不知道如何用时区显示这个时间戳。当我试图显示它时,我得到错误的 DateTime 或错误的时区
示例1:
Calendar calendar = Calendar.getInstance();
calendar.setTime(new Date(device.getUpdatedDate().getTime())); // here is 2018-07-09 20:02:26.506000
SimpleDateFormat sdf = new SimpleDateFormat(EMAIL_DATE_FORMAT);
sdf.format(calendar.getTime()); // i have wrong timezone
我明白了Monday, Jul 09, 2018 08:02 PM EEST
但是当我添加时sdf.setTimeZone(TimeZone.getTimeZone("HST"));
我有正确的时区和错误的时间
Monday, Jul 09, 2018 07:02 AM HST
预期结果Monday, Jul 09, 2018 08:02 PM HST
实际结果:Monday, Jul 09, 2018 08:02 PM EEST
或Monday, Jul 09, 2018 07:02 AM HST
解决方案
推荐阅读
- android - 如何使用双簧管库实现混响算法?
- ms-word - 在 Word 中是否有计算两个合并字段日期之间差异的公式?
- sas - 如何在最终报告(.xlsx 文件)中使用过滤器显示动态结果
- python - QStandardItemModel - 添加一行只有一个项目
- javascript - 不需要时的功能渲染
- java - 模拟 @AuthenticationPrincipal 进行单元测试
- java - 在 Java 中使用 LZ4 添加到现有的 .lz4 (zip)
- sql - 如何使用 Join 求和
- swift - 用于编辑 NSManagedObject 的抽象实体和类型别名?
- python - Python 正则表达式:分离 'kg' 和 'g' 或 'ML 和 'L'