问题描述
importjava.text.SimpleDateFormat;importjava.util.Calendar;importjava.util.Date;importjava.util.Locale;importjava.util.TimeZone;publicclassDataTime{publicstaticvoidmain(String[]argv){DatenowDate=newDate();System.out.println("nowDate:"+nowDate);System.out.println("GMT-8:"+Calendar.getInstance(TimeZone.getTimeZone("GMT-8")).getTime());SimpleDateFormatfm=newSimpleDateFormat("yyyy-MM-ddHH:mm:ss",Locale.US);fm.setTimeZone(TimeZone.getTimeZone("GMT+8"));Stringmoditime=fm.format(nowDate);System.out.println("formated:"+moditime);}}
运行结果:nowDate:ThuDec2315:50:06GMT2010GMT-8:ThuDec2315:50:06GMT2010formated:2010-12-2323:50:06控制台下一行显示:<terminated>DataTime(1)[JavaAplication]D:javajavabinjavaw.exe(2010-12-23下午03:50:06)----------------------------------------------------------------------------------------------百思不得其解,为什么我系统的时间是'GMT-8'的2010-12-2323:50:06而java虚拟机的时区是格林尼治标准时间而且这个时间还不能进行时区转化(Calendar.getInstance(TimeZone.getTimeZone("GMT-8")).getTime());)希望有朋友可以帮忙解答下,诚谢!
解决方案
解决方案二:
你用的是jdk1.5吧,用1.6的话,谁的时区也不用改,直接就统一了,都用北京时间东八区。至于为什么那个时区转换的代码不起作用,我也不知道,我在1.6上也不起作用。三个打印结果一样。
解决方案三:
恩jdk6对5做了优化了引用1楼sunleisoft的回复:
你用的是jdk1.5吧,用1.6的话,谁的时区也不用改,直接就统一了,都用北京时间东八区。至于为什么那个时区转换的代码不起作用,我也不知道,我在1.6上也不起作用。三个打印结果一样。
解决方案四:
en..先优化再试着调试一下。