您的位置:首页 > 其它

问题小结(18)-UTC时间及时区获取

2012-07-30 14:25 169 查看
UTC时间:世界统一时间,世界标准时间又称格林尼治平时或格林尼治时间

可以采用多种方法获取,这里只简单介绍两种:直接获取零时区时间、根据本地时间计算得出。

方法一、直接获取零时区时间:

DateFormat dateFormatter=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
TimeZone pst = TimeZone.getTimeZone("Etc/GMT+0");

Date curDate = new Date();
dateFormatter.setTimeZone(pst);
String str=dateFormatter.format(curDate);//这就是我们想要获取的值

方法二、根据本地时间计算得出:

Calendar cal = Calendar.getInstance(Locale.getDefault());
int zoneOffset = cal.get(java.util.Calendar.ZONE_OFFSET);
int dstOffset = cal.get(java.util.Calendar.DST_OFFSET);
cal.add(java.util.Calendar.MILLISECOND, -(zoneOffset + dstOffset));
String str=DateFormat.format("yyyy'-'MM'-'dd' 'kk':'mm':'ss' '", cal);//这就是我们想要获取的值

时区获取:

String Zone=TimeZone.getDefault().toString();//这种方法获取的并不能得到我们想要的东西

TimeZone.getDefault().getID()//获取的仅仅是个时区里的城市名

我们想得到能够直接标识东八区(+8)或者西七区(-7)之类的东西,这只能是我们通过时间的偏移量来计算获得,方法如下:

Calendar cal = Calendar.getInstance(Locale.getDefault());
int zoneOffset = cal.get(java.util.Calendar.ZONE_OFFSET);
int zone=zoneOffset/60/60/1000;//时区,东时区数字为正,西时区为负


PS:UTC时间+时区差=本地时间
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: