问题小结(18)-UTC时间及时区获取
2012-07-30 14:25
169 查看
UTC时间:世界统一时间,世界标准时间又称格林尼治平时或格林尼治时间。
可以采用多种方法获取,这里只简单介绍两种:直接获取零时区时间、根据本地时间计算得出。
方法一、直接获取零时区时间:
方法二、根据本地时间计算得出:
时区获取:
String Zone=TimeZone.getDefault().toString();//这种方法获取的并不能得到我们想要的东西
TimeZone.getDefault().getID()//获取的仅仅是个时区里的城市名
我们想得到能够直接标识东八区(+8)或者西七区(-7)之类的东西,这只能是我们通过时间的偏移量来计算获得,方法如下:
PS: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时间+时区差=本地时间
相关文章推荐
- 代码小结:时区的时间问题
- lua 获取时间的 os.date时区问题 需要注意的
- 数据库获取时间的时区问题以及getTimestamp和getDate的坑
- PHP获取系统时间,时区设置问题
- DatePicker获取时间时,如何转换时区的问题
- 关于utc时间与格林威治时间(linux上获取系统时区及代码)
- Tomcat7.x时区问题导致时间获取不正确
- PHP获取当前时间戳,当前时间、及解决时区问题
- DatePicker 获取时间的时区问题
- [Ios] DatePicker获取时间时,如何转换时区的问题
- -UTC时间及时区获取
- 获取全球所有时区当前时间的 Objective-C 代码
- MySQL和sql获取当前时间是本月的第几周或本月第一天的问题
- UTC GMT 时区 时间戳
- linux和windows时间同步问题(UTC&localtime)
- 【PHP】时间计算问题小结
- linux环境下时区无法设置(系统时间慢8个小时)的问题解决
- 关于获取本地系统时间问题
- 24时区,GMT,UTC,DST,CST时间详解
- 关于linux中的时间 时区问题