Java SimpleTimeZone setStartRule()方法与示例

SimpleTimeZone类setStartRule()方法

语法:

    public void setStartRule(int st_mm, int st_dd, int st_time);
    public void setStartRule(int st_mm, int st_dd, int st_dow, int st_time);
    public void setStartRule(int st_mm, int st_dd,int st_dow, int st_time, boolean status);
  • setStartRule()方法在java.util包中可用。

  • setStartRule(int st_mm,int st_dd,int st_time)方法用于将DST(夏令时)的开始规则设置为一个月中的给定固定日期(dd)。

  • setStartRule(int st_mm,int st_dd,int st_dow,int st_time)方法用于设置DST(夏令时)的开始规则。

  • setStartRule(int st_mm,int st_dd,int st_dow,int st_time,布尔状态)方法用于将DST(夏令时)的开始规则设置为较早的工作日(dow)或一个月中给定日期(dd)之后。

  • 这些方法在设置开始规则时可能会引发异常。
    IllegalArgumentException:当任何一个参数不在范围内时,可能引发此异常。

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

参数:

  • 在第一种情况下,setStartRule(int st_mm,int st_dd,int st_time)

    • int st_mm –表示夏令时开始的月份。

    • int st_dd –表示夏令时开始的月份。

    • int st_time –表示DST的开始时间。

  • 在第二种情况下,setStartRule(int st_mm,int st_dd,int st_dow,int st_time)

    • int st_mm –表示夏令时开始的月份。

    • int st_dd –表示夏令时开始的月份。

    • int st_dow –表示夏令时的开始日期。

    • int st_time –表示DST的开始时间。

  • 在第二种情况下,setStartRule(int st_mm,int st_dd,int st_dow,int st_time,布尔状态)

    • int st_mm –表示夏令时开始的月份。

    • int st_dd –表示夏令时开始的月份。

    • int st_dow –表示夏令时的开始日期。

    • int st_time –表示DST的开始时间。

    • 布尔状态–设置为true,然后此规则在st_dd或之后选择第一个st_dow,否则,该规则在st_dd或之前选择最后一个st_dow。

返回值:

在所有情况下,该方法的返回类型均为空–它不返回任何内容。

示例

//Java程序演示示例 
//的setStartRule()的SimpleTimeZone的方法

import java.util.*;

public class SetStartRuleOfSimpleTimeZone {
    public static void main(String args[]) {
        //实例化SimpleTimeZone对象
        SimpleTimeZone s_tz1 = new SimpleTimeZone(360, "FRANCE");
        SimpleTimeZone s_tz2 = new SimpleTimeZone(760, "JAPAN");
        SimpleTimeZone s_tz3 = new SimpleTimeZone(39800000, "US",
            Calendar.APRIL, 6, -Calendar.MONDAY, 7200000, Calendar.OCTOBER, -1,
            Calendar.MONDAY, 7200000, 3600000);

        //通过使用setStartRule(yy,mm,dd)方法用于
        //将DST开始规则设置为固定日期
        s_tz1.setStartRule(Calendar.JUNE, Calendar.MONDAY, 3800000);

        //通过使用setStartRule(yy,mm,dow,dd)方法用于
        //之前的一个工作日
        //或在给定日期之后
        s_tz2.setStartRule(Calendar.JUNE, Calendar.MONDAY, 2, 3800000, false);


        //通过使用setStartRule(yy,mm,dow,dd,boolean)方法用于
        //设置DST开始规则 
        s_tz3.setStartRule(Calendar.JUNE, Calendar.MONDAY, 2, 3800000);

        //显示SimpleTimeZone-
        System.out.print("s_tz1.setStartRule(Calendar.JUNE, Calendar.MONDAY,3800000): ");
        System.out.println(s_tz1);

        System.out.print("s_tz2.setStartRule(Calendar.JUNE, Calendar.MONDAY,3800000,false): ");
        System.out.println(s_tz1);

        System.out.print("s_tz3.setStartRule(Calendar.JUNE, Calendar.MONDAY,2,3800000): ");
        System.out.println(s_tz1);
    }
}

输出结果

s_tz1.setStartRule(Calendar.JUNE, Calendar.MONDAY,3800000): java.util.SimpleTimeZone[id=FRANCE,offset=360,dstSavings=3600000,useDaylight=false,startYear=0,startMode=1,startMonth=5,startDay=2,startDayOfWeek=0,startTime=3800000,startTimeMode=0,endMode=0,endMonth=0,endDay=0,endDayOfWeek=0,endTime=0,endTimeMode=0]
s_tz2.setStartRule(Calendar.JUNE, Calendar.MONDAY,3800000,false): java.util.SimpleTimeZone[id=FRANCE,offset=360,dstSavings=3600000,useDaylight=false,startYear=0,startMode=1,startMonth=5,startDay=2,startDayOfWeek=0,startTime=3800000,startTimeMode=0,endMode=0,endMonth=0,endDay=0,endDayOfWeek=0,endTime=0,endTimeMode=0]
s_tz3.setStartRule(Calendar.JUNE, Calendar.MONDAY,2,3800000): java.util.SimpleTimeZone[id=FRANCE,offset=360,dstSavings=3600000,useDaylight=false,startYear=0,startMode=1,startMonth=5,startDay=2,startDayOfWeek=0,startTime=3800000,startTimeMode=0,endMode=0,endMonth=0,endDay=0,endDayOfWeek=0,endTime=0,endTimeMode=0]