补充TimeZone
怎么自己做一个ZoneID : GMT+0010
变量
LONG
SHORT
构造器
TimeZone()但是他是一个抽象类,无法实例化
方法
clone() 浅克隆,equals()返回true,= =返回false
getAvailableIDs() rawOffset参数应该按小时来,3600000、7200000、10800000
getDefault()
getDisplayName()
getDSTSavings() 不知道什么意思
getID()
abstract getOffset(int era,int year,int month,int day,int dayOfWeek,int millsseconds) 没明白为什么这个抽象方法可以直接用,因为getDefault返回的TimeZone是这个类:class sun.util.calendar.ZoneInfo不是java.util.TimeZone。使用多态,为什么会这样?而且返回的都是28800000,另一个getOffset(long date)也是
getRowOffset() 问题同上
getTimeZone()
hasSameRules() 不知道这个规则和偏移量的具体含义
inDaylightTime() 不理解夏时令的含义
observesDaylightTime() 同上
setDefault()
setID() 可以随便设置,猜测是setter和getter方法,只是为了封装
setRawOffset() 不知道有什么用
toZoneId() 依靠id进行转换和setID()有关系
==useDaylightTime() ==
import java.text.*;
import java.util.*;
import java.math.*;
import static java.text.DateFormat.*;
import java.time.*;
public class Test
{
public static void main(String[] args) throws ParseException
{
//TimeZone
System.out.println(TimeZone.LONG);
System.out.println(TimeZone.SHORT);
TimeZone zone1 = TimeZone.getDefault();
TimeZone zone2 = TimeZone.getDefault();
TimeZone zone3 = (TimeZone)zone1.clone();
System.out.println(zone1.equals(zone2)+":"+(zone1==zone2));
System.out.println(zone1.equals(zone3)+":"+(zone1==zone3));
String[] ids = TimeZone.getAvailableIDs();
for( String s : ids)
{
//System.out.println(s);
}
String[] ids2 = TimeZone.getAvailableIDs(10800000);
for(String s : ids2)
{
System.out.println(s);
}
TimeZone zone4 = TimeZone.getDefault();
System.out.println(zone4.getDisplayName());
System.out.println(zone4.getDisplayName(true,TimeZone.LONG));
System.out.println(zone4.getDisplayName(true,TimeZone.LONG,Locale.US));
System.out.println(zone4.getDisplayName(Locale.GERMAN));
System.out.println(zone4.getDSTSavings());
TimeZone zone5 = TimeZone.getTimeZone("Europe/Rome");
System.out.println(zone5.getDSTSavings());
System.out.println(zone4.getID());
System.out.println(zone5.getID());
System.out.println(zone4.getOffset(GregorianCalendar.AD,2000,10,2,4,5000));
System.out.println(zone4.getClass());
System.out.println(new String("abc").getClass());
System.out.println(zone4.getOffset(100000000));
System.out.println(zone4.getRawOffset());
zone5 = TimeZone.getTimeZone("Indian/Comoro");
for(String s : ZoneId.SHORT_IDS.values())
{
//System.out.println(s);
}
ZoneId id = ZoneId.of("America/Los_Angeles");
System.out.println(id);
System.out.println(zone5);
zone5 = TimeZone.getTimeZone(id);
System.out.println(zone5);
System.out.println(zone4.hasSameRules(zone5));
zone4 = TimeZone.getTimeZone("Europe/Minsk");
zone5 = TimeZone.getTimeZone("Europe/Simferopol");
System.out.println(zone4.hasSameRules(zone5));
System.out.println(zone4.inDaylightTime(new Date()));
System.out.println(zone5.inDaylightTime(new Date()));
System.out.println(zone4.observesDaylightTime());
System.out.println(zone5.observesDaylightTime());
System.out.println(TimeZone.getDefault());
TimeZone.setDefault(zone5);
System.out.println(zone5);
System.out.println(TimeZone.getDefault());
System.out.println(zone5.getID());
//zone5.setID("asd");
System.out.println(zone5.getID());
System.out.println(zone5.getRawOffset());
zone5.setRawOffset(10);
System.out.println(zone5.getRawOffset());
ZoneId id2 = zone5.toZoneId();
System.out.println(id2);
System.out.println(zone4.useDaylightTime());
System.out.println(zone5.useDaylightTime());
System.out.println(TimeZone.getTimeZone("GMT+8:22").getID());
System.out.println(TimeZone.getTimeZone("GMT+0010").getID());
System.out.println(TimeZone.getTimeZone("GMO+0010"));
}
}