ZoneId america = ZoneId.of("Asia/Shanghai");
ZoneRules rules = america.getRules();
System.out.println(rules);
ZoneRules[currentStandardOffset=+08:00]
AF Afghanistan Asia/Kabul UTC +04:30
AX Aland Islands Europe/Mariehamn UTC +02:00
AL Albania Europe/Tirane UTC +01:00
DZ Algeria Africa/Algiers UTC +01:00
AS American Samoa Pacific/Pago_Pago UTC -11:00
AD Andorra Europe/Andorra UTC +01:00
AO Angola Africa/Luanda UTC +01:00
AI Anguilla America/Anguilla UTC -04:00
1、
获取
系统时间SimpleDateFormat timeFormat = new SimpleDateFormat("HH-mm-ss");
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
strTime = timeFormat.format(new java.util.Date());
strDate =
时区
除了我们经常用的东八区,新需求是根据经纬度
获取
当地
时区
,并且将设备上的
时区
更新到当前
时区
获取
当前位置的经纬度是基本要求,本项目中有
获取
全球任意
城市
的天气需求,所以两个功能我就结合起来做了
1、
获取
天气信息 Api地址
Current weather data - OpenWeatherMap
有几种方式
获取
到
城市
的天气,而且当前API是免费
获取
,我的需求是根据经纬度
获取
我用的是这个方法,可以
获取
到我所需要的尽可能详细的信息
其中天气接口返回的值里面有一个关键字
timezon.
列表如下:Etc/GMT+12Etc/GMT+11MITPacific/ApiaPacific/MidwayPacific/NiuePacific/Pago_PagoPacific/SamoaUS/SamoaAmerica/AdakAmerica/AtkaEtc/GMT+10HSTPacific/FakaofoPacific/HonoluluPacific/JohnstonPacific/Raro...
斯威夫特4
获取
当前用户
时区
:let currentTimeZone = TimeZone.current
获取
所有
时区
:let timeZoneIdentifiers = TimeZone.knownTimeZoneIdentifiers使用标识符创建
时区
:let berlin = TimeZone(identifier: "Europe/Berlin")!
获取
时区
的
城市
名称:let cityNam...
Java所支持的所有
时区
ID(2013-11-03 20:50:24)Etc/GMT+12Etc/GMT+11MITPacific/ApiaPacific/MidwayPacific/NiuePacific/Pago_PagoPacific/SamoaUS/SamoaAmerica/AdakAmerica/AtkaEtc/GMT+10HSTPacific/FakaofoPacific/Honolu...
世界各国
时区
表 图片源自网络说明: +表示早上北京时间;-表示迟于北京时间ASIA 亚洲
城市
国家
时差Abadan阿巴丹伊朗-4:30Abu Dhabi阿布扎比阿联酋-4Aden亚丁也门-5Amman安曼约旦-6Ankara安卡拉土耳其-6Baghdad巴格达伊拉克-5Baku巴库阿塞拜疆-6Bandar Seri Begawan斯里巴加湾港文莱0Bangkok曼谷泰国-1Beirut贝...
1.2 格式2:+0800
SimpleDateFormat("Z").format(Calendar.getInstance(TimeZone.getTimeZone("GMT"),Locale.getDefault()).time)
其实这种格式已经是比较通用,业务上可以直接使用这种方式统一
时区
格式。
2 自定义格式:GMT+08:00
针对我的业务,已经定好了GMT+08:00这种格式,但是使用格式1存在着返回格式不统一的问题。