云自无心水自闲

天平山上白云泉,云自无心水自闲。何必奔冲山下去,更添波浪向人间!
posts - 134, comments - 239, trackbacks - 0, articles - 6
  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

 

public String getFormatedDateString(int timeZoneOffset)
        
if (timeZoneOffset > 13 || timeZoneOffset < -12{
            logger.error(
"Configuration item TimeZone " + timeZoneString + " is invalid.");
            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("yyyyMMddHHmmss");
        sdf.setTimeZone(timeZone);

        
return sdf.format(newDate);
    }

其中timeZoneOffset就是时区,比如东八区,就传入8,西二区就传入-2

新的方法,使用指定的TimeZone ID来获得TimeZone,这样更精确,因为有一些城市,虽然时区。比如:悉尼和布里斯班,都是东10区,但是悉尼实行夏令时,所以夏天的时候,悉尼要比布里斯班早1小时。

        TimeZone timeZoneSYD = TimeZone.getTimeZone("Australia/Sydney");
        TimeZone timeZoneBNE = TimeZone.getTimeZone("Australia/Brisbane");
       
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        sdf.setTimeZone(timeZoneSYD);
        Date date = new Date();
        System.out.println(sdf.format(date));
       
        sdf.setTimeZone(timeZoneBNE);
        System.out.println(sdf.format(date));

其中TimeZone的ID列表,可以使用函数
    public static String[] TimeZone.getAvailableIDs();
来获得

 



标题  
姓名  
主页
验证码 *  
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
该文被作者在 2008-03-27 08:07 编辑过
 
 
相关链接:
网站导航: