详解Jvm中时区设置方式

 更新时间:2020年09月09日 11:06:49   作者:淼叔  
这篇文章主要介绍了详解Jvm中时区设置方式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

这篇文章memo一下Jvm中关于时区设定的基础操作。

Java的时区设定

这里列出如下三种方式

方式 说明
TimeZone.setDefault方式 通过java的utils下的TimeZone进行动态设定
user.timezone传递方式 运行时通过传递-Duser.timezone=xxx进行设定
TZ环境变量方式 通过export的TZ环境变量进行设定

TimeZone.setDefault方式

Sample代码如下:

sh-4.2# cat TestTimeZone.java
import java.util.Date;
import java.text.SimpleDateFormat;
import java.util.TimeZone;

public class TestTimeZone {
 public static void main(String[] args) {
 System.out.println(TimeZone.getDefault()); 
 SimpleDateFormat dfOld = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
 System.out.println(dfOld.format(new Date()));

 //final TimeZone timeZone = TimeZone.getTimeZone("GMT+8");
 final TimeZone timeZone = TimeZone.getTimeZone("Asia/Shanghai");
 TimeZone.setDefault(timeZone);
 System.out.println(TimeZone.getDefault()); 
 SimpleDateFormat dfNew = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
 System.out.println(dfNew.format(new Date()));

 }
}
sh-4.2# 

结果确认

sh-4.2# unset TZ
sh-4.2# java TestTimeZone
sun.util.calendar.ZoneInfo[id="UTC",offset=0,dstSavings=0,useDaylight=false,transitions=0,lastRule=null]
2018-08-08 00:02:05
sun.util.calendar.ZoneInfo[id="Asia/Shanghai",offset=28800000,dstSavings=0,useDaylight=false,transitions=19,lastRule=null]
2018-08-08 08:02:05
sh-4.2#

user.timezone传递方式

同样的代码,不同之处在与运行态改变状态,适用场景为不需改变代码,与前一种方式一样,只要系统状态OK,此处即OK

sh-4.2# unset TZ
sh-4.2# java -Duser.timezone=Asia/Shanghai TestTimeZone
sun.util.calendar.ZoneInfo[id="Asia/Shanghai",offset=28800000,dstSavings=0,useDaylight=false,transitions=19,lastRule=null]
2018-08-08 08:03:25
sun.util.calendar.ZoneInfo[id="Asia/Shanghai",offset=28800000,dstSavings=0,useDaylight=false,transitions=19,lastRule=null]
2018-08-08 08:03:25
sh-4.2# 

TZ环境变量方式

同样的代码,适用场景为不需改变代码,与前一种方式一样,只要系统状态OK,此处即OK

sh-4.2# export TZ=Asia/Shanghai
sh-4.2# java TestTimeZone
sun.util.calendar.ZoneInfo[id="Asia/Shanghai",offset=28800000,dstSavings=0,useDaylight=false,transitions=19,lastRule=null]
2018-08-08 08:04:02
sun.util.calendar.ZoneInfo[id="Asia/Shanghai",offset=28800000,dstSavings=0,useDaylight=false,transitions=19,lastRule=null]
2018-08-08 08:04:02
sh-4.2# 1

到此这篇关于详解Jvm中时区设置方式的文章就介绍到这了,更多相关Jvm 时区设置内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • JavaCV实现照片马赛克效果

    JavaCV实现照片马赛克效果

    这篇文章主要介绍了如何通过JavaCV实现照片马赛克效果,文中的示例代码讲解详细,对我们学习JavaCV有一定的帮助,感兴趣的小伙伴可以跟随小编一起动手试一试
    2022-01-01
  • CorsFilter 过滤器解决跨域的处理

    CorsFilter 过滤器解决跨域的处理

    这篇文章主要介绍了CorsFilter 过滤器解决跨域的处理操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-06-06
  • Spring Boot 中密码加密的两种方法

    Spring Boot 中密码加密的两种方法

    这篇文章主要介绍了Spring Boot 中密码加密的两种方法,帮助大家更好的理解和使用Spring Boot框架,感兴趣的朋友可以了解下
    2020-09-09
  • spring中的特殊注解@RequiredArgsConstructor详解

    spring中的特殊注解@RequiredArgsConstructor详解

    这篇文章主要介绍了spring中的特殊注解@RequiredArgsConstructor,包括注解注入,构造器注入及setter注入,结合示例代码给大家介绍的非常详细,需要的朋友可以参考下
    2022-04-04
  • SpringBoot实现项目文件上传的方法详解

    SpringBoot实现项目文件上传的方法详解

    这篇文章主要为大家详细介绍了SpringBoot中实现项目文件上传的相关资料,文中的示例代码讲解详细,具有一定的借鉴价值,感兴趣的小伙伴可以了解一下
    2022-11-11
  • java 流与 byte[] 的互转操作

    java 流与 byte[] 的互转操作

    这篇文章主要介绍了java 流与 byte[] 的互转操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-10-10
  • Java正则表达式验证固定电话号码符合性

    Java正则表达式验证固定电话号码符合性

    这篇文章主要介绍了Java正则表达式验证固定电话号码符合性的实例代码,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2018-09-09
  • springboot 增加过滤器方法操作示例

    springboot 增加过滤器方法操作示例

    这篇文章主要介绍了springboot 增加过滤器方法操作,结合实例形式分析了springboot过滤器配置、加载等相关操作技巧,需要的朋友可以参考下
    2019-12-12
  • MybatisPlus中的删除和逻辑删除及区别介绍

    MybatisPlus中的删除和逻辑删除及区别介绍

    这篇文章主要介绍了MybatisPlus中的删除和逻辑删除的相关知识,删除又分为逻辑删除和物理删除,那么它们有什么区别呢?在本文给大家详细介绍,感兴趣的朋友跟随小编一起看看吧
    2020-08-08
  • springboot接口参数为List的问题

    springboot接口参数为List的问题

    这篇文章主要介绍了springboot接口参数为List的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-11-11

最新评论