对于System.currentTimeMillis()没有影响。
对于Calendar.getInstance().getTimeInMillis()没有影响。
影响系统对long型的毫秒数的解释,如:Calendar.get(int field);Calendar.set(int field,int value);和
String.format("%1$TY%1$Tm%1$Td%1$TH:%1$TM:%1$TS",nTimeMillis);
通过Calendar.set(int field,int value)设置各个字段值,然后用Calendar.getTimeInMillis()方法转换时间会收到影响。
对SimpleDateFormat类的parse(String text,ParsePosition pos)无影响,它总是按UTC时间解释。
我的机子的JVM经常时区出错,每次用导入注册表的方法恢复,但是不长久,而且在C系统中很正常。后来在程序代码中加入设置默认时区的方法解决:
TimeZone tz = TimeZone.getTimeZone("ETC/GMT-8");
TimeZone.setDefault(tz);//将JVM的默认时区设为东部+8时间,也就是北京时间。
程序中的时区不再受影响。