首页 > 其他分享 >详解Jvm中时区设置方式,推荐 代码中TimeZone.getTimeZone("Asia/Shanghai") 而不使用TimeZone.getTimeZone("GM

详解Jvm中时区设置方式,推荐 代码中TimeZone.getTimeZone("Asia/Shanghai") 而不使用TimeZone.getTimeZone("GM

时间:2023-08-08 13:12:24浏览次数:43  
标签:4.2 08 Shanghai Asia sh Jvm TimeZone getTimeZone

详解Jvm中时区设置方式
原文链接:https://www.45fan.com/article.php?aid=20090934958860528675768691

这篇文章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 时区设置内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!

                    					</div>
			  </div>

标签:4.2,08,Shanghai,Asia,sh,Jvm,TimeZone,getTimeZone
From: https://www.cnblogs.com/sunny3158/p/17613897.html

相关文章

  • JVM系统优化实践(24):ZGC(一)
    您好,这里是「码农镖局」51CTO博客,欢迎您来,欢迎您再来~截止到目前,算上ZGC,Java一共有九种类型的GC,它们分别是:1、SerialGC 串行/作用于新生代/复制算法/响应速度优先/适用于单CPU下的client模式2、ParNewGC 并行/作用于新生代/复制算法/响应速度优先/多CPU的Server模式与CMS配合使用3......
  • 【JVM技术指南】「GC内存诊断-故障问题排查」一文教你如何打印及分析JVM的GC日志(实战
    当我们在开发Java应用程序时,JVM的GC(垃圾回收)是一个非常重要的话题。GC的作用是回收不再使用的内存,以便程序可以继续运行。在JVM中,GC的日志记录了GC的详细信息,包括GC的类型、时间、内存使用情况等。在本文中,我们将介绍JVMGC日志的格式、含义和分析方法。JVMGC日志格式JVMGC日志的......
  • 从原理聊JVM(四):JVM中的方法调用原理
    1引言多态是Java语言极为重要的一个特性,可以说是Java语言动态性的根本,那么线程执行一个方法时到底在内存中经历了什么,JVM又是如何确定方法执行版本的呢?2栈帧JVM中由栈帧存储方法的局部变量表、操作数栈、动态连接和方法返回地址等信息。每一个方法的调用就是从入栈到出栈到过......
  • JVM:对象一定在堆中分配吗?
    Java中的对象实例在大多数情况下都是在堆内存中分配的。堆是JVM所管理的内存中最大的一块区域,主要用于存放对象实例和数组。然而,有一些优化技术,如逃逸分析和标量替换,使得并非所有对象都在堆上分配。逃逸分析(EscapeAnalysis)是一种优化技术,用于分析对象动态作用域。如果一个对象......
  • JVM常见参数
    一、JVM参数大致可以分为三类1、标准指令:-开头,这些所有的HotSpot都支持的参数,可以用java-help打印出来.-verbose:gc:用于输出jvm载入类的相关信息,当jvm报告说找不到类或者类冲突时可此进行诊断-verbose:class:输出每次GC的相关情况-verbose:jni:输出native方法调用的相关情......
  • JVM零基础到高级实战之Java内存区域虚拟机栈
    前言JVM零基础到高级实战之Java内存区域虚拟机栈JVM内存模型之虚拟机栈虚拟机栈是什么?用于作用于方法执行的一块Java内存区域为什么要有虚拟机栈?每个方法在执行的同时都会创建一个栈帧(StackFramel)用于存储局部变量表、操作数栈、动态链接、方法出口等信息。每一个方法从调用直至......
  • JVM
    一、解决什么问题1.解决Java跨平台问题的2.解决Java如何让计算机运行的3.解决内存的分配释放,如垃圾回收gc4.安全性,如字节码验证和安全沙箱5.异常处理6.多线程7.动态加载,即动态的加载和卸载代码,这样比较灵活和可扩展,如即时编译器JIT二、如何解决的1.跨平台?方法:通过不同......
  • 为了成为Java大牛,我决定手写个JVM~
    JVM对我们很多人来说就像个黑盒子,无从下手,但是又是我们JavaCoder不得不去深入研究的一门技术国内玩JVM的大牛很少,知名的就那么几个,而玩好JVM又教好JVM的人更是少之又少。今天给大家介绍其中一位,江湖人送外号道格牙的子牙老师。下面的时间,交给他。哈喽,我就是江湖人送外号[......
  • JavaSE--JDK、JRE、JVM三者之间的关系
    JDK:Java开发工具箱JRE:Java运行环境JVM:java虚拟机JDK包括JRE,JRE包括JVM。jvm是不能独立安装的,但是jre和jdk是可以单独安装的安装jdk后jre自动就安装了安装jre后jvm就自动安装了 问题:在客户进行项目部署时,把项目跑起来,需要安装jdk么?只需要安装jre就行,jre体积小,安装便捷 Java体......
  • 一次JVM内存溢出的排查经过
    文章目录一、背景二、解决办法三、总结一、背景高峰将至,系统访问量进入高峰期。随之系统出现了异常:java.lang.OutOfMemoryError:unabletocreatenewnativethread。在解决这个问题中,尝试了各种方法,最后竟然是因为它…二、解决办法1、关于这个问题,一开始猜想是因消息队列(acti......