线上出一个特别神奇的bug,通过以下方式取到的时间,比真实的时间早了一个小时。处理时区的方式是:

public static Date converDateBaseFromGMT(Date sourceDate) {Calendar cal = Calendar.getInstance();cal.setTime(sourceDate);cal.add(Calendar.MILLISECOND, -TimeZone.getTimeZone(TimeZone.getDefault().getID()).getRawOffset());cal.add(Calendar.MILLISECOND, TimeZone.getTimeZone("GMT+8").getRawOffset());return cal.getTime();}

单位的服务器在国外,有夏时令的问题(比标准的时区晚一个小时)。由于缺乏生活常识,晚的一个小时并没有往这方面去想。走了颇多弯路。

差java API 发现对getRawOffse()方法的描述:

getRawOffsetpublic abstract int getRawOffset()
返回添加到 UTC 以获取此时区中的标准时间的时间量(以毫秒为单位)。<strong>因为此值不受夏令时的影响,所以它称为原始偏移量</strong>。
如果底层 TimeZone 实现子类支持历史 GMT 的偏移量变化,那么此方法返回当前日期的原始偏移量值。例如,在火奴鲁鲁(美国夏威夷州的首府和港市),它的原始偏移量在 1947 年从 GMT-10:30 改变到 GMT-10:00,并且此方法始终返回 -36000000 毫秒(即 -10 小时)。

就是被他坑了。。

可以使用getRowSet()

getOffsetpublic int getOffset(long date)
从给定日期的 UTC 返回此时区的偏移量。如果夏令时在指定的日期是有效的,就用夏令时调整偏移值。
如果底层 TimeZone 实现子类支持历史夏令时安排和 GMT 偏移量改变,那么此方法就返回历史上正确的偏移值。

java中时区的时令问题相关推荐

  1. 常见数据库时间戳格式化函数及用法(按时区格式化时间戳),java计算时区值

    介绍下clickhouse.mysql.SQL server.Oracle数据库中将时间戳按时区进行格式化的函数及用法. 前提 默认传入的时间戳是UTC时间 函数 ClickHouse formatD ...

  2. Java时间处理5---Java8中时区相关类库介绍

    前言 在Java8以前,我们对于时区的处理通常是为时间转换类设置指定TimeZone,然后进行时区时间转换. 而在Java8中不仅对时间日期进行了细粒度处理,有无时区,时区处理也进行了更加细粒度的优化 ...

  3. java中bjt和utc转化_如何在Java中转换UTC和本地时区

    我对Java中的时区感到好奇.我想从设备获取UTC时间(以毫秒为单位)并发送到服务器.当服务器向用户显示时间时,服务器会将其转换为本地时区.我系统中的时区是澳大利亚/悉尼(UTC + 11:00),测 ...

  4. 在java中使用JDBC连接mysql数据库时的服务器时区值无法识别或表示多个时区的问题解决方案

    项目场景: 在java中使用JDBC连接mysql数据库时,报以下的错:Exception in thread "main" java.sql.SQLException: The ...

  5. Java中的时区转换

    转载自 halfclear 原文:https://blog.csdn.net/halfclear/article/details/77573956 1.Date中保存的是什么 在java中,只要我们执 ...

  6. Java中输出时区的缩写_Java中的时区转换小结

    时间加减 Date currentDate = new Date(System.currentTimeMillis()); Calendar cal = Calendar.getInstance(); ...

  7. Java中各国时区的写法

    JAVA 中常用的zoneId 有2种格式: 1.时区偏移量的形式:GMT+8 2.区域的形式:Asia/Shanghai(常用),java中使用该形式的zoneId会自动计算夏令时. 亚洲 时区 国 ...

  8. java代码中设置mysql时区_关于Java中的mysql时区问题详解

    前言 话说工作十多年,mysql 还真没用几年.起初是外企银行,无法直接接触到 DB:后来一直从事架构方面,也多是解决问题为主. 这次搭建海外机房,围绕时区大家做了一番讨论.不说最终的结果是什么,期间 ...

  9. java 夏令时区_Java中的夏令时问题

    因为在用C#做项目的时候被夏令时坑过一回,所以这次将在java中的时区转换信息做一下记录,很简单 SimpleDateFormat inputFormat = new SimpleDateFormat ...

最新文章

  1. 设计模式之Builder(建造者)(转)
  2. Ranger-Sqoop2插件实现详解
  3. win定时关机_电脑定时关机,你造吗?
  4. 五种开源API网关实现组件对比
  5. Windows 7 SP1开发完毕 已进入测试阶段
  6. Google Chrome谷歌旧版本下载
  7. html弹窗可以复制,简单漂亮的js弹窗可自由拖拽且兼容大部分浏览器
  8. 海森矩阵介绍及其在机器学习、深度学习中的理解
  9. PCA主成分分析去噪与降维
  10. 计算机上e盘拒绝访问,e盘拒绝访问怎么办,教你win7系统e盘拒绝访问的应对办法...
  11. Linux开发运维常用命令
  12. 不重装系统解决win10更新错误0x800f0922
  13. 懂球帝Android客户端WebView优化之路
  14. android 自定义桌面,无需 root,3 个 App 帮你构建高效的 Android 桌面
  15. 富文本插件 和回显 vue-quill-editor
  16. JavaWeb开发 —— Ajax
  17. Android 手机自动化测试工具有哪几种?
  18. 校校通php,ZDSoft.net校校通软件平台7.0((8.5日升级版).rar(请使用迅雷)
  19. 深圳软件测试培训:SVN与Git的差异
  20. 07长电债今上市 公司债正式启航

热门文章

  1. [Python从零到壹] 四.网络爬虫之入门基础及正则表达式抓取博客案例
  2. excel显著性检验_《如何利用Excel对所得数据进行显著性分析?》 excel怎么做方差齐性检验...
  3. cisco 华三 对接_H3C 交换机与Cisco交换机采用链路聚合对接的配置案例
  4. 阿里云服务器硬盘不够用怎么办?
  5. 冰河亲自整理的Git命令汇总,悄悄努力,然后惊艳所有人
  6. mac上配置outlook2019 + qqmail
  7. 视频文件头解析--mkv
  8. 2021年好用的几款大数据分析工具
  9. c语言企业自动化管理系统,基于C语言制作的人事管理系统-自动化毕业论文.doc...
  10. 支付宝当面付之扫码支付“无效签名”