歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Redhat Linux及其Oracle JRE、IBM JRE的時間、時區及夏令時

Redhat Linux及其Oracle JRE、IBM JRE的時間、時區及夏令時

日期:2017/2/28 15:29:38   编辑:Linux教程

對於集群和分布式等大型系統來說,時間及其同步是個很重要的問題。經過對RedHat linux及JRE(包括Oracle JRE,IBM JRE)的研究,現總結如下。

1,時間的查看

通常的時間可分為local時間和UTC時間,local時間在linux下使用date查看:

# date

Wed Oct 31 17:38:06 BRST 2012

通常這個時間是指所在時區和包括了夏令時計算的時間值。所有使用linux時間的系統打印出的時間都是這個。

UTC時間是指標准格林威治及零時區的時間,不包含夏令時的計算。UTC時間查看方式是:

# date -u

Wed Oct 31 19:38:12 UTC 2012

基本上:Local時間=UTC時間+時區時間差+夏令時時間差

還有硬件時間,及BIOS上存儲的時間,查看方式:

# hwclock

Wed 31 Oct 2012 05:38:16 PM BRST -0.328544 seconds

為了查看JRE的時間,我們寫了一個工具:

# cat TestTimeZone.java

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.TimeZone;
public class TestTimeZone
{
private static String DEFAULT_FORMAT = "yyyy-MM-dd HH:mm:ss.SSS (z)";
private static SimpleDateFormat sdf = new SimpleDateFormat(DEFAULT_FORMAT);
public static void main(String args[])
{
Date dt = new Date();
System.out.println("Current time:\t"+ sdf.format(dt));
sdf.setTimeZone(TimeZone.getTimeZone("UTC"));
System.out.println("UTC time:\t"+ sdf.format(dt));
System.out.println("Env variable user.timezone:" + System.getProperty(""user.timezone"));
}
}

為了兼容低版本JRE,采用JDK1.4編譯,運行:
#/usr/java/j2sdk1.4.2/bin/java TestTimeZone.java
#java TestTimeZone
Current time: 2012-10-31 15:57:47.014 (BRST)
UTC time: 2012-10-31 17:57:47.014 (UTC)
Env variable user.timezone :America/Bahia

Copyright © Linux教程網 All Rights Reserved