- 获得的时间都是与windows系统的时间相差8个小时,解决方法有两个,分别是:
- 方法一:
- public String getFormatedDateString(int timeZoneOffset)
- if (timeZoneOffset > 13 || timeZoneOffset < -12) {
- timeZoneOffset = 0;
- }
- TimeZone timeZone;
- String[] ids = TimeZone.getAvailableIDs(timeZoneOffset * 60 * 60 * 1000);
- if (ids.length == 0) {
- // if no ids were returned, something is wrong. use default TimeZone
- timeZone = TimeZone.getDefault();
- } else {
- timeZone = new SimpleTimeZone(timeZoneOffset * 60 * 60 * 1000, ids[0]);
- }
- SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
- sdf.setTimeZone(timeZone);
- return sdf.format(newDate);
- }
- 方法中参数timeZoneOffset表示时区,如中国一般使用东八区,因此timeZoneOffset就是8,如果是西四区就是传入-4就可以了!
- 方法二:
- public String getFormatedDateString(){
- java.util.TimeZone timeZone = java.util.TimeZone.getTimeZone("Asia/Shanghai");
- SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒");
- sdf.setTimeZone(timeZone);
- return sdf.format(new Date());
- }
- 此方法返回的是中国的北京时间,如果是其它国家的时间可以在TimeZone的getTimeZone方法中设置不同的时区