●时间戳(timestamp)定义

时间戳指的是从格林威治时间1970年01月01日00时00分00秒起至现在的总秒数。严格来说,不管你处在地球上的哪个地方,任意时间点的时间戳都是相同的。这点有利于线上和客户端分布式应用统一追踪时间信息。时间戳是没有时区概念的,同一个时间戳对不同时区显示的时间不一样而已。

最近在做一个api的自测时发现,在不同环境同一个api返回的response里的时间戳结果不太一样。查看了下编程逻辑,代码如下:

SimpleDateFormat sDateFormat = new SimpleDateFormat("yyyy-MM-dd");
Date date=sDateFormat.parse(m.getDaytime());//格式类似"2020-02-20"
getEventNumDateResponse.setTime(date.getTime());
sDateFormat= null;

这段代码逻辑上没什么问题,但在不同环境上运行结果不一样,问题出在哪了?

细想,怀疑Date与时区肯定有关系,经过检查,发现本地的时区是默认的东八区UTC+0800,本地java 程序运行也没配置时区,采用的自然是系统时区东八区,而在另外一个开发环境,jar包运行时配置了-Duser.timezone=UTC,虽然系统默认也是东八区,原来是这个设置导致的。

比如"2020-02-20"这个字符串时间,被SimpleDateFormat parse后,如果当前的运行时区(没设置则是系统时区)是UTC+0800,则时间Date是:Thu Feb 20 00:00:00 CST 2020

CST时区包含了UTC+8:00 也就是这个时间自然是东八区的 2020-02-20 00:00:00 这个时间,对应着是UTC 0时区的2020-02-19 16:00:00时间,通过getTime获取的时间戳是:

System.out.println(TimeZone.getDefault().getRawOffset());
28800000
System.out.println(sdf.parse("2020-02-20").getTime());
1582128000000

通过在pg里转化验证:

SELECT TO_TIMESTAMP(1582128000)AT TIME ZONE 'UTC-0' ;
2020-02-19 16:00:00
SELECT TO_TIMESTAMP(1582128000)AT TIME ZONE 'Asia/Shanghai' ;
2020-02-20 00:00:00

同样,当我们在系统里设置了时区为UTC 0时区,或者在jar运行时设置了-Duser.timezone=UTC,或者在代码里配置了

TimeZone.setDefault(TimeZone.getTimeZone("UTC"));

这样,当后面SimpleDateFormat parse后, 则时间Date是:Thu Feb 20 00:00:00 UTC 2020,表明是UTC 0时区的 2020-02-20 00:00:00 这个时间,对应着是UTC+8时区的

2020-02-20 08:00:00时间,通过getTime获取的时间戳是:

System.out.println(TimeZone.getDefault().getRawOffset());
0
System.out.println(sdf.parse("2020-02-20").getTime());1582156800000

通过在pg里转化验证:

SELECT TO_TIMESTAMP(1582156800)AT TIME ZONE 'UTC-0';2020-02-20 00:00:00

----直接写时区偏移(基于格林威治时区,是反的,即提前-滞后+,例如正常东八区,需要写-8:00,因此建议直接用时区缩写,见后面附表,当然也可以写

---Asia/Shanghai表示东八区

SELECT TO_TIMESTAMP(1582156800)AT TIME ZONE 'Asia/Shanghai' ;2020-02-20 08:00:00

写到这里,相信大家都明白了为啥同一个程序在不同机器上跑出的涉及时间戳的结果不一致,这一点要注意额,千万别掉坑里。

最后,说一下涉及时间戳时,配置时区的几种方式:

Linux中:(以redhat 7.0为例)

查看:

[root@localhost Desktop]#timedatectl status
Local time: Thu 2020-02-27 14:57:58CST
Universal time: Thu2020-02-27 06:57:58UTC
RTC time: Thu2020-02-27 06:58:00Time zone: Asia/Shanghai (CST, +0800)
NTP enabled: yes
NTP synchronized: no
RTCinlocal TZ: no
DST active: n/a

或者:

[root@localhost Desktop]# date -R
Thu, 27 Feb 2020 15:00:25 +0800

设置:

# timedatectl set-timezone "Asia/Shanghai"

在Java中也可以设置时区

1)启动设置

java -Duser.timezone=Asia/Shanghai -jar xxx.jar

2) 代码中设置

TimeZone.setDefault(TimeZone.getTimeZone("UTC"));
SimpleDateFormat sdf= new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
System.out.println(sdf.parse("2018-09-01 08:00:00").getTime());

3) 单次处理生效,建议使用joda的时间包

joda-time
joda-time
2.9.9
DateTimeFormatter dateTimeFormatter= DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss").withChronology(ISOChronology.getInstance(DateTimeZone.forID("Asia/Shanghai")));
System.out.println(dateTimeFormatter.parseDateTime("2018-09-01 08:00:00").getMillis());

另外,了解Java8 的朋友可能都知道,Java8提供了一套新的时间处理API,这套API比以前的时间处理API要友好的多。

Java8 中加入了对时区的支持,带时区的时间为分别为:ZonedDate、ZonedTime、ZonedDateTime。其中每个时区都对应着 ID,地区ID都为 “{区域}/{城市}”的格式,如Asia/Shanghai、America/Los_Angeles等。

Java中的Date类中是不包含时区信息的,在使用System.out.println打印Date的时候,回调用Date.toString方法,该方法会获取系统的默认时区来转换时间。

在Java8中可以使用ZonedTime、ZonedDate和ZonedDateTime来表示带有时区信息的时间。

L

ocalDateTime now = LocalDateTime.now(ZoneId.of("America/Los_Angeles"));
System.out.println(now);//获取秒数
Long second = LocalDateTime.now().toEpochSecond(ZoneOffset.of("+8"));//获取毫秒数
Long milliSecond = LocalDateTime.now().toInstant(ZoneOffset.of("+8")).toEpochMilli();
//时间转字符串格式化
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMddHHmmssSSS");
String dateTime = LocalDateTime.now(ZoneOffset.of("+8")).format(formatter);
//字符串转时间
String dateTimeStr = "2018-07-28 14:11:15";
DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");

附几种时区标准:

1.UTC

UTC+时区差=本地时间

时区差东为正,西为负

UTC是协调世界时(Universal Time Coordinated)英文缩写,是由国际无线电咨询委员会规定和推荐,并由国际时间局(BIH)负责保持的以秒为基础的时间标度。UTC相当于本初子午线(即经度0度)上的平均太阳时,过去曾用格林威治平均时(GMT)来表示.北京时间比UTC时间早8小时,以1999年1月1日0000UTC为例,UTC时间是零点,北京时间为1999年1月1日早上8点整。

2.GMT(Greenwich Mean Time)是格林尼治平时:

由于地球轨道并非圆形,其运行速度又随着地球与太阳的距离改变而出现变化,因此视太阳时欠缺均匀性。视太阳日的长度同时亦受到地球自转轴相对轨道面的倾斜度所影响。为着要纠正上述的不均匀性,天文学家计算地球非圆形轨迹与极轴倾斜对视太阳时的效应。平太阳时就是指经修订后的视太阳时。在格林尼治子午线上的平太阳时称为世界时(UT0),又叫格林尼治平时(GMT)。 为了确保协调世界时与世界时(UT1)相差不会超过0.9秒,有需要时便会在协调世界时内加上正或负闰秒。因此协调世界时与国际原子时(TAI)之间会出现若干整数秒的差别。位于巴黎的国际地球自转事务中央局(IERS)负责决定何时加入闰秒。

也就是说,UTC 基本上等于GMT

3.CET

(英語:Central European Time,CET)欧洲中部时间是比世界标准时间(UTC)早一个小时的时区名称之一。它被大部分欧洲国家和部分北非国家采用。冬季时间为UTC+1,夏季欧洲夏令时为UTC+2。

4.CEST

欧洲中部夏令时间(Central European Summer Time,简称CEST)比世界标准时间(UTC)早两个小时的时区名称之一。它被大部分欧洲国家和部分北非国家在夏天采用(UTC+2),冬季这些国家使用欧洲中部时间(UTC+1)

附JAVA TIMEZONE 时区表:

Etc/GMT+12
Etc/GMT+11
MIT
Pacific/Apia
Pacific/Midway
Pacific/Niue
Pacific/Pago_Pago
Pacific/Samoa
US/Samoa
America/Adak
America/Atka
Etc/GMT+10
HST
Pacific/Fakaofo
Pacific/Honolulu
Pacific/Johnston
Pacific/Rarotonga
Pacific/Tahiti
SystemV/HST10
US/Aleutian
US/Hawaii
Pacific/Marquesas
AST
America/Anchorage
America/Juneau
America/Nome
America/Yakutat
Etc/GMT+9
Pacific/Gambier
SystemV/YST9
SystemV/YST9YDT
US/Alaska
America/Dawson
America/Ensenada
America/Los_Angeles
America/Tijuana
America/Vancouver
America/Whitehorse
Canada/Pacific
Canada/Yukon
Etc/GMT+8
Mexico/BajaNorte
PST
PST8PDT
Pacific/Pitcairn
SystemV/PST8
SystemV/PST8PDT
US/Pacific
US/Pacific-New
America/Boise
America/Cambridge_Bay
America/Chihuahua
America/Dawson_Creek
America/Denver
America/Edmonton
America/Hermosillo
America/Inuvik
America/Mazatlan
America/Phoenix
America/Shiprock
America/Yellowknife
Canada/Mountain
Etc/GMT+7
MST
MST7MDT
Mexico/BajaSur
Navajo
PNT
SystemV/MST7
SystemV/MST7MDT
US/Arizona
US/Mountain
America/Belize
America/Cancun
America/Chicago
America/Costa_Rica
America/El_Salvador
America/Guatemala
America/Indiana/Knox
America/Indiana/Tell_City
America/Knox_IN
America/Managua
America/Menominee
America/Merida
America/Mexico_City
America/Monterrey
America/North_Dakota/Center
America/North_Dakota/New_Salem
America/Rainy_River
America/Rankin_Inlet
America/Regina
America/Swift_Current
America/Tegucigalpa
America/Winnipeg
CST
CST6CDT
Canada/Central
Canada/East-Saskatchewan
Canada/Saskatchewan
Chile/EasterIsland
Etc/GMT+6
Mexico/General
Pacific/Easter
Pacific/Galapagos
SystemV/CST6
SystemV/CST6CDT
US/Central
US/Indiana-Starke
America/Atikokan
America/Bogota
America/Cayman
America/Coral_Harbour
America/Detroit
America/Eirunepe
America/Fort_Wayne
America/Grand_Turk
America/Guayaquil
America/Havana
America/Indiana/Indianapolis
America/Indiana/Marengo
America/Indiana/Petersburg
America/Indiana/Vevay
America/Indiana/Vincennes
America/Indiana/Winamac
America/Indianapolis
America/Iqaluit
America/Jamaica
America/Kentucky/Louisville
America/Kentucky/Monticello
America/Lima
America/Louisville
America/Montreal
America/Nassau
America/New_York
America/Nipigon
America/Panama
America/Pangnirtung
America/Port-au-Prince
America/Porto_Acre
America/Resolute
America/Rio_Branco
America/Thunder_Bay
America/Toronto
Brazil/Acre
Canada/Eastern
Cuba
EST
EST5EDT
Etc/GMT+5
IET
Jamaica
SystemV/EST5
SystemV/EST5EDT
US/East-Indiana
US/Eastern
US/Michigan
America/Caracas
America/Anguilla
America/Antigua
America/Aruba
America/Asuncion
America/Barbados
America/Blanc-Sablon
America/Boa_Vista
America/Campo_Grande
America/Cuiaba
America/Curacao
America/Dominica
America/Glace_Bay
America/Goose_Bay
America/Grenada
America/Guadeloupe
America/Guyana
America/Halifax
America/La_Paz
America/Manaus
America/Marigot
America/Martinique
America/Moncton
America/Montserrat
America/Port_of_Spain
America/Porto_Velho
America/Puerto_Rico
America/Santiago
America/Santo_Domingo
America/St_Barthelemy
America/St_Kitts
America/St_Lucia
America/St_Thomas
America/St_Vincent
America/Thule
America/Tortola
America/Virgin
Antarctica/Palmer
Atlantic/Bermuda
Atlantic/Stanley
Brazil/West
Canada/Atlantic
Chile/Continental
Etc/GMT+4
PRT
SystemV/AST4
SystemV/AST4ADT
America/St_Johns
CNT
Canada/Newfoundland
AGT
America/Araguaina
America/Argentina/Buenos_Aires
America/Argentina/Catamarca
America/Argentina/ComodRivadavia
America/Argentina/Cordoba
America/Argentina/Jujuy
America/Argentina/La_Rioja
America/Argentina/Mendoza
America/Argentina/Rio_Gallegos
America/Argentina/San_Juan
America/Argentina/San_Luis
America/Argentina/Tucuman
America/Argentina/Ushuaia
America/Bahia
America/Belem
America/Buenos_Aires
America/Catamarca
America/Cayenne
America/Cordoba
America/Fortaleza
America/Godthab
America/Jujuy
America/Maceio
America/Mendoza
America/Miquelon
America/Montevideo
America/Paramaribo
America/Recife
America/Rosario
America/Sao_Paulo
Antarctica/Rothera
BET
Brazil/East
Etc/GMT+3
America/Noronha
Atlantic/South_Georgia
Brazil/DeNoronha
Etc/GMT+2
America/Scoresbysund
Atlantic/Azores
Atlantic/Cape_Verde
Etc/GMT+1
Africa/Abidjan
Africa/Accra
Africa/Bamako
Africa/Banjul
Africa/Bissau
Africa/Casablanca
Africa/Conakry
Africa/Dakar
Africa/El_Aaiun
Africa/Freetown
Africa/Lome
Africa/Monrovia
Africa/Nouakchott
Africa/Ouagadougou
Africa/Sao_Tome
Africa/Timbuktu
America/Danmarkshavn
Atlantic/Canary
Atlantic/Faeroe
Atlantic/Faroe
Atlantic/Madeira
Atlantic/Reykjavik
Atlantic/St_Helena
Eire
Etc/GMT
Etc/GMT+0
Etc/GMT-0
Etc/GMT0
Etc/Greenwich
Etc/UCT
Etc/UTC
Etc/Universal
Etc/Zulu
Europe/Belfast
Europe/Dublin
Europe/Guernsey
Europe/Isle_of_Man
Europe/Jersey
Europe/Lisbon
Europe/London
GB
GB-Eire
GMT
GMT0
Greenwich
Iceland
Portugal
UCT
UTC
Universal
WET
Zulu
Africa/Algiers
Africa/Bangui
Africa/Brazzaville
Africa/Ceuta
Africa/Douala
Africa/Kinshasa
Africa/Lagos
Africa/Libreville
Africa/Luanda
Africa/Malabo
Africa/Ndjamena
Africa/Niamey
Africa/Porto-Novo
Africa/Tunis
Africa/Windhoek
Arctic/Longyearbyen
Atlantic/Jan_Mayen
CET
ECT
Etc/GMT-1
Europe/Amsterdam
Europe/Andorra
Europe/Belgrade
Europe/Berlin
Europe/Bratislava
Europe/Brussels
Europe/Budapest
Europe/Copenhagen
Europe/Gibraltar
Europe/Ljubljana
Europe/Luxembourg
Europe/Madrid
Europe/Malta
Europe/Monaco
Europe/Oslo
Europe/Paris
Europe/Podgorica
Europe/Prague
Europe/Rome
Europe/San_Marino
Europe/Sarajevo
Europe/Skopje
Europe/Stockholm
Europe/Tirane
Europe/Vaduz
Europe/Vatican
Europe/Vienna
Europe/Warsaw
Europe/Zagreb
Europe/Zurich
MET
Poland
ART
Africa/Blantyre
Africa/Bujumbura
Africa/Cairo
Africa/Gaborone
Africa/Harare
Africa/Johannesburg
Africa/Kigali
Africa/Lubumbashi
Africa/Lusaka
Africa/Maputo
Africa/Maseru
Africa/Mbabane
Africa/Tripoli
Asia/Amman
Asia/Beirut
Asia/Damascus
Asia/Gaza
Asia/Istanbul
Asia/Jerusalem
Asia/Nicosia
Asia/Tel_Aviv
CAT
EET
Egypt
Etc/GMT-2
Europe/Athens
Europe/Bucharest
Europe/Chisinau
Europe/Helsinki
Europe/Istanbul
Europe/Kaliningrad
Europe/Kiev
Europe/Mariehamn
Europe/Minsk
Europe/Nicosia
Europe/Riga
Europe/Simferopol
Europe/Sofia
Europe/Tallinn
Europe/Tiraspol
Europe/Uzhgorod
Europe/Vilnius
Europe/Zaporozhye
Israel
Libya
Turkey
Africa/Addis_Ababa
Africa/Asmara
Africa/Asmera
Africa/Dar_es_Salaam
Africa/Djibouti
Africa/Kampala
Africa/Khartoum
Africa/Mogadishu
Africa/Nairobi
Antarctica/Syowa
Asia/Aden
Asia/Baghdad
Asia/Bahrain
Asia/Kuwait
Asia/Qatar
Asia/Riyadh
EAT
Etc/GMT-3
Europe/Moscow
Europe/Volgograd
Indian/Antananarivo
Indian/Comoro
Indian/Mayotte
W-SU
Asia/Riyadh87
Asia/Riyadh88
Asia/Riyadh89
Mideast/Riyadh87
Mideast/Riyadh88
Mideast/Riyadh89
Asia/Tehran
Iran
Asia/Baku
Asia/Dubai
Asia/Muscat
Asia/Tbilisi
Asia/Yerevan
Etc/GMT-4
Europe/Samara
Indian/Mahe
Indian/Mauritius
Indian/Reunion
NET
Asia/Kabul
Asia/Aqtau
Asia/Aqtobe
Asia/Ashgabat
Asia/Ashkhabad
Asia/Dushanbe
Asia/Karachi
Asia/Oral
Asia/Samarkand
Asia/Tashkent
Asia/Yekaterinburg
Etc/GMT-5
Indian/Kerguelen
Indian/Maldives
PLT
Asia/Calcutta
Asia/Colombo
Asia/Kolkata
IST
Asia/Katmandu
Antarctica/Mawson
Antarctica/Vostok
Asia/Almaty
Asia/Bishkek
Asia/Dacca
Asia/Dhaka
Asia/Novosibirsk
Asia/Omsk
Asia/Qyzylorda
Asia/Thimbu
Asia/Thimphu
BST
Etc/GMT-6
Indian/Chagos
Asia/Rangoon
Indian/Cocos
Antarctica/Davis
Asia/Bangkok
Asia/Ho_Chi_Minh
Asia/Hovd
Asia/Jakarta
Asia/Krasnoyarsk
Asia/Phnom_Penh
Asia/Pontianak
Asia/Saigon
Asia/Vientiane
Etc/GMT-7
Indian/Christmas
VST
Antarctica/Casey
Asia/Brunei
Asia/Choibalsan
Asia/Chongqing
Asia/Chungking
Asia/Harbin
Asia/Hong_Kong
Asia/Irkutsk
Asia/Kashgar
Asia/Kuala_Lumpur
Asia/Kuching
Asia/Macao
Asia/Macau
Asia/Makassar
Asia/Manila
Asia/Shanghai
Asia/Singapore
Asia/Taipei
Asia/Ujung_Pandang
Asia/Ulaanbaatar
Asia/Ulan_Bator
Asia/Urumqi
Australia/Perth
Australia/West
CTT
Etc/GMT-8
Hongkong
PRC
Singapore
Australia/Eucla
Asia/Dili
Asia/Jayapura
Asia/Pyongyang
Asia/Seoul
Asia/Tokyo
Asia/Yakutsk
Etc/GMT-9
JST
Japan
Pacific/Palau
ROK
ACT
Australia/Adelaide
Australia/Broken_Hill
Australia/Darwin
Australia/North
Australia/South
Australia/Yancowinna
AET
Antarctica/DumontDUrville
Asia/Sakhalin
Asia/Vladivostok
Australia/ACT
Australia/Brisbane
Australia/Canberra
Australia/Currie
Australia/Hobart
Australia/Lindeman
Australia/Melbourne
Australia/NSW
Australia/Queensland
Australia/Sydney
Australia/Tasmania
Australia/Victoria
Etc/GMT-10
Pacific/Guam
Pacific/Port_Moresby
Pacific/Saipan
Pacific/Truk
Pacific/Yap
Australia/LHI
Australia/Lord_Howe
Asia/Magadan
Etc/GMT-11
Pacific/Efate
Pacific/Guadalcanal
Pacific/Kosrae
Pacific/Noumea
Pacific/Ponape
SST
Pacific/Norfolk
Antarctica/McMurdo
Antarctica/South_Pole
Asia/Anadyr
Asia/Kamchatka
Etc/GMT-12
Kwajalein
NST
NZ
Pacific/Auckland
Pacific/Fiji
Pacific/Funafuti
Pacific/Kwajalein
Pacific/Majuro
Pacific/Nauru
Pacific/Tarawa
Pacific/Wake
Pacific/Wallis
NZ-CHAT
Pacific/Chatham
Etc/GMT-13
Pacific/Enderbury
Pacific/Tongatapu
Etc/GMT-14
Pacific/Kiritimati
附: PostgreSQL Time Zone Names
NamesOffsetDescription
FJST
-13:00
Fiji Summer Time
FJT
-12:00
Fiji Time
IDLW
-12:00
International Date Line, West
BST
-11:00
Bering Summer Time
NT
-11:00
Nome Time
NUT
-11:00
Niue Time
AHST
-10:00
Alaska-Hawaii Std Time
CAT
-10:00
Central Alaska Time
HST
-10:00
Hawaii Std Time
THAT
-10:00
Tahiti Time
TKT
-10:00
Tokelau Time
MART
-09:30
Marquesas Time
AKST
-09:00
Alaska Standard Time
GAMT
-09:00
Gambier Time
HDT
-09:00
Hawaii/Alaska Daylight Time
YST
-09:00
Yukon Standard Time
AKDT
-08:00
Alaska Daylight Time
PST
-08:00
Pacific Standard Time
YDT
-08:00
Yukon Daylight Time
MST
-07:00
Mountain Standard Time
PDT
-07:00
Pacific Daylight Time
CST
-06:00
Central Standard Time
EAST
-06:00
Easter Island Time
GALT
-06:00
Galapagos Time
MDT
-06:00
Mountain Daylight Time
ZP6
-06:00
UTC +6 hours
ACT
-05:00
Atlantic/Porto Acre Time
CDT
-05:00
Central Daylight Time
COT
-05:00
Columbia Time
EASST
-05:00
Easter Island Summer Time
ECT
-05:00
Ecuador Time
EST
-05:00
Eastern Standard Time
PET
-05:00
Peru Time
ZP5
-05:00
UTC +5 hours
ACST
-04:00
Atlantic/Porto Acre Summer Time
AMT
-04:00
Amazon Time (Porto Velho)
AST
-04:00
Atlantic Std Time (Canada)
BOT
-04:00
Bolivia Time
CLT
-04:00
Chile Time
ECT
-04:00
Eastern Caribbean Time
EDT
-04:00
Eastern Daylight Time
GYT
-04:00
Guyana Time
PYT
-04:00
Paraguay Time
VET
-04:00
Venezuela Time
ZP4
-04:00
UTC +4 hours
NFT
-03:30
Newfoundland Standard Time
NST
-03:30
Newfoundland Standard Time
ADT
-03:00
Atlantic Daylight Time
AMST
-03:00
Amazon Summer Time (Porto Velho)
ART
-03:00
Argentina Time
AWT
-03:00
Brazil Time
BRT
-03:00
Brasilia Time
BST
-03:00
Brazil Standard Time
CLST
-03:00
Chile Summer Time
FKST
-03:00
Falkland Islands Summer Time
GFT
-03:00
French Guiana Time
PYST
-03:00
Paraguay Summer Time
UYT
-03:00
Uruguay Time
WGT
-03:00
West Greenland Time
NDT
-02:30
Newfoundland Daylight Time
BRST
-02:00
Brasilia Summer Time
FKT
-02:00
Falkland Islands Time
FNT
-02:00
Fernando de Noronha Time
PMDT
-02:00
Pierre & Miquelon Daylight Time
UYST
-02:00
Uruguay Summer Time
WGST
-02:00
West Greenland Summer Time
AZOT
-01:00
Azores Time
EGT
-01:00
East Greenland Time
FNST
-01:00
Fernando de Noronha Summer Time
SET
-01:00
Seychelles Time
WAT
-01:00
West Africa Time
AZOST
+00:00
Azores Summer Time
EGST
+00:00
East Greenland Summer Time
GMT
+00:00
Greenwich Mean Time
UTC
+00:00
Universal Coordinated Time
UT
+00:00
Universal Time
WET
+00:00
Western Europe
ZULU
+00:00
Universal Time
Z
+00:00
ISO-8601 Universal Time
BST
+01:00
British Summer Time
CET
+01:00
Central European Time
DNT
+01:00
Dansk Normal Time
FST
+01:00
French Summer Time
MET
+01:00
Middle Europe Time
MEWT
+01:00
Middle Europe Winter Time
MEZ
+01:00
Middle Europe Zone
NOR
+01:00
Norway Standard Time
SWT
+01:00
Swedish Winter Time
WEST
+01:00
Western Europe Summer Time
WEtdST
+01:00
Western Europe Daylight Savings Time
BDST
+02:00
British Double Summer Time
CEST
+02:00
Central European Dayl.Time
CETDST
+02:00
Central European Dayl.Time
EET
+02:00
Eastern Europe, USSR Zone 1
FWT
+02:00
French Winter Time
IST
+02:00
Israel Time
MEST
+02:00
Middle Europe Summer Time
MEtdST
+02:00
Middle Europe Daylight Time
SST
+02:00
Swedish Summer Time
BT
+03:00
Baghdad Time
EAT
+03:00
East Africa Time
EAT
+03:00
Indian Antananarivo Time
EEST
+03:00
Eastern Europe Summer Time
EEtdST
+03:00
Eastern Europe Daylight Time
HMT
+03:00
Hellas Mediterranean Time
MSK
+03:00
Moscow Time
IRT
+03:30
Iran Time
IT
+03:30
Iran Time
AMT
+04:00
Armenia Time (Yerevan)
AZT
+04:00
Azerbaijan Time
EAST
+04:00
Indian Antananarivo Savings Time
GET
+04:00
Georgia Time
MSD
+04:00
Moscow Summer Time
MUT
+04:00
Mauritius Island Time
RET
+04:00
Reunion Island Time
SCT
+04:00
Mahe Island Time
AFT
+04:30
Kabul Time
AMST
+05:00
Armenia Summer Time (Yerevan)
AZST
+05:00
Azerbaijan Summer Time
GEST
+05:00
Georgia Summer Time
IOT
+05:00
Indian Chagos Time
KGT
+05:00
Kyrgyzstan Time
MVT
+05:00
Maldives Island Time
PKT
+05:00
Pakistan Time
TFT
+05:00
Kerguelen Time
TJT
+05:00
Tajikistan Time
TMT
+05:00
Turkmenistan Time
UZT
+05:00
Uzbekistan Time
YEKT
+05:00
Yekaterinburg Time
NPT
+05:45
Nepal Standard Time
ALMT
+06:00
Almaty Time
BDT
+06:00
Dacca Time
BTT
+06:00
Bhutan Time
DUSST
+06:00
Dushanbe Summer Time
KGST
+06:00
Kyrgyzstan Summer Time
LKT
+06:00
Lanka Time
MAWT
+06:00
Mawson, Antarctica
NOVT
+06:00
Novosibirsk Standard Time
OMST
+06:00
Omsk Time
UZST
+06:00
Uzbekistan Summer Time
YEKST
+06:00
Yekaterinburg Summer Time
CCT
+06:30
Indian Cocos (Island) Time
MMT
+06:30
Myanmar Time
ALMST
+07:00
Almaty Savings Time
CVT
+07:00
Christmas Island Time (Indian Ocean)
CXT
+07:00
Christmas Island Time (Indian Ocean)
DAVT
+07:00
Davis Time (Antarctica)
ICT
+07:00
Indochina Time
JAVT
+07:00
Java Time
KRAST
+07:00
Krasnoyarsk Summer Time
NOVST
+07:00
Novosibirsk Summer Time
OMSST
+07:00
Omsk Summer Time
WAST
+07:00
West Australian Std Time
JT
+07:30
Java Time
AWST
+08:00
Western Australia
BNT
+08:00
Brunei Darussalam Time
BORT
+08:00
Borneo Time (Indonesia)
CCT
+08:00
China Coast Time
HKT
+08:00
Hong Kong Time
IRKT
+08:00
Irkutsk Time
KRAT
+08:00
Krasnoyarsk Standard Time
MYT
+08:00
Malaysia Time
PHT
+08:00
Phillipine Time
ULAT
+08:00
Ulan Bator Time
WADT
+08:00
West Australian DST
WST
+08:00
West Australian Standard   Time
MT
+08:30
Moluccas Time
AWSST
+09:00
Western Australia Time
IRKST
+09:00
Irkutsk Summer Time
JAYT
+09:00
Jayapura Time (Indonesia)
JST
+09:00
Japan Std Time, USSR Zone 8
KST
+09:00
Korea Standard Time
PWT
+09:00
Palau Time
ULAST
+09:00
Ulan Bator Summer Time
WDT
+09:00
West Australian DST
YAKT
+09:00
Yakutsk Time
ACST
+09:30
Central Australia
CAST
+09:30
Central Australian ST
SAST
+09:30
South Australian Std Time
SAT
+09:30
South Australian Std Time
AEST
+10:00
Australia Eastern Std Time
DDUT
+10:00
Dumont-d'Urville Time (Antarctica)
EAST
+10:00
East Australian Std Time
EST
+10:00
Australia Eastern Std Time
GST
+10:00
Guam Std Time, USSR Zone 9
KDT
+10:00
Korea Daylight Time
LIGT
+10:00
From Melbourne, Australia
MPT
+10:00
North Mariana Islands Time
PGT
+10:00
Papua New Guinea Time
trUK
+10:00
Truk Time
VLAT
+10:00
Vladivostok Time
YAKST
+10:00
Yakutsk Summer Time
YAPT
+10:00
Yap Time (Micronesia)
ACSST
+10:30
Central Australia Time
CADT
+10:30
Central Australian DST
CST
+10:30
Australia Central Std Time
LHST
+10:30
Lord Howe Standard Time, Australia
SADT
+10:30
South Australian Daylight Time
AESST
+11:00
Eastern Australia
LHDT
+11:00
Lord Howe Daylight Time, Australia
MAGT
+11:00
Magadan Time
NCT
+11:00
New Caledonia Time
PONT
+11:00
Ponape Time (Micronesia)
VLAST
+11:00
Vladivostok Summer Time
VUT
+11:00
Vanuata Time
ANAT
+12:00
Anadyr Time (Russia)
CKT
+12:00
Cook Islands Time
GILT
+12:00
Gilbert Islands Time
IDLE
+12:00
International Date Line, East
KOST
+12:00
Kosrae Time
MAGST
+12:00
Magadan Summer Time
MHT
+12:00
Kwajalein Time
NZST
+12:00
New Zealand Standard Time
NZT
+12:00
New Zealand Time
PETT
+12:00
Petropavlovsk-Kamchatski Time
TVT
+12:00
Tuvalu Time
WAKT
+12:00
Wake Time
WFT
+12:00
Wallis and Futuna Time
CHAST
+12:45
Chatham Island Time
ANAST
+13:00
Anadyr Summer Time (Russia)
NZDT
+13:00
New Zealand Daylight Time
PETST
+13:00
Petropavlovsk-Kamchatski Summer Time
PHOT
+13:00
Phoenix Islands (Kiribati) Time
TOT
+13:00
Tonga Time
CHADT
+13:45
Chatham Island Daylight Time
LINT
+14:00
Line Islands Time (Kiribati)