Java TimeZone getOffset()方法与示例

TimeZone类getOffset()方法

语法:

    public abstract int getOffset(int era's , int yy, int mm, int dd, int DOW, int ms);
    public int getOffset(long dd);
  • getOffset()方法在java.util包中可用。

  • getOffset(int age's,int yy,int mm,int dd,int dow,int ms)方法用于返回该模式为夏令时时当前日期的时区偏移量。

  • getOffset(long dd)方法用于返回该时区的偏移量,该偏移量是根据给定日期(dd)的UTC计算的。

  • 这些方法在获取偏移量时不会引发异常。

  • 这些是非静态方法,只能通过类对象访问,如果尝试使用类名称访问这些方法,则会收到错误消息。

参数:

  • 在第一种情况下,getOffset(int age's,int yy,int mm,int dd,int dow,int ms)“

    • int age's –代表指定日期的时代。

    • int yy –表示指定日期的年份。

    • int mm –表示指定日期的月份。

    • int dd –表示指定日期的星期几。

    • int dow –表示指定日期的年份。

    • int ms –表示标准本地时间的毫秒数。

  • 在第二种情况下,getOffset(long dd)

    • long dd –代表日期,以毫秒为单位。

返回值:

在这两种情况下,方法的返回类型均为int –返回以ms为单位的偏移量,以添加默认时区(GMT)以返回本地时间。

示例

//Java程序演示示例 
//时区getOffset()方法的说明

import java.util.*;

public class GetOffsetOfTimeZone {
    public static void main(String args[]) {
        //实例化TimeZone对象
        TimeZone tz = TimeZone.getTimeZone("Africa/Asmera");

        //显示tz-
        System.out.println("tz: " + tz);

        //通过使用getOffset()方法是
        //根据给定的偏移量
        //参数

        System.out.print("tz.getOffset(era's, yy, mm,dd,dow,time): ");
        System.out.println(tz.getOffset(1, 2009, 3, 3, 3, 100));

        //通过使用getOffset()方法是
        //根据给定的偏移量
        //日期
        System.out.print("tz.getOffset(long d): ");
        System.out.println(tz.getOffset(Calendar.ZONE_OFFSET));
    }
}

输出结果

tz: sun.util.calendar.ZoneInfo[id="Africa/Asmera",offset=10800000,dstSavings=0,useDaylight=false,transitions=6,lastRule=null]
tz.getOffset(era's, yy, mm,dd,dow,time): 10800000
tz.getOffset(long d): 10800000