Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Java does not produce correct time zone information

Tags:

java

timezone

I run a Java program on a Windows machine. I am trying to get a list of time zones and their related information. Here is the complete program:

    String[] allTimeZones = TimeZone.getAvailableIDs();
    Date now = new Date();
    for (int i = 0; i < allTimeZones.length; i++) {
        TimeZone tz = TimeZone.getTimeZone(allTimeZones[i]);
        System.out.format("%s;%s; %f \n", 
                          allTimeZones[i],
                          tz.getDisplayName(), 
                          (float) (tz.getOffset(now.getTime())/3600000.0));
    }

One of the generated time zone has the following info:

America/New_York;Eastern Standard Time; -4.000000

This is puzzling. At this moment, New York is in Eastern Summer Daylight Saving time. So the above info is not right.

Does anyone know how I can make Java to generate

America/New_York;Eastern Standard Time; -5.000000

or something like this

America/New_York;Eastern Summer Daylight Saving Time; -4.000000

Thanks for help!

Regards

like image 588
curious1 Avatar asked Apr 05 '13 15:04

curious1


People also ask

How does Java handle time zone issues?

The Right Way: TZDB Timezone ID The right way to handle DST in Java is to instantiate a Timezone with a specific TZDB Timezone ID, eg. “Europe/Rome”. Then, we'll use this in conjunction with time-specific classes like java.

How does Java determine TimeZone?

By default, the JVM reads time zone information from the operating system. This information gets passed to the TimeZone class, which stores the time zone and calculates the daylight saving time. We can call the method getDefault, which will return the time zone where the program is running.

How do I set the TimeZone in Java?

You can explicitly set a default time zone on the command line by using the Java system property called user. timezone . This bypasses the settings in the Windows operating system and can be a workaround.

How do I fix TimeZone problems?

Check the timezone and change it if necessary. Change the settings to automatic to sync time and date with the online server. If time and date are still incorrect, adjust them manually.


2 Answers

Use getDisplayName(daylight, style), passing in true for daylight. This'll print:

America/New_York;Eastern Daylight Time; -4.000000

But you'll have to determine whether the current time is in daylight savings time or not (or it'll always return "Daylight Time", even in the fall and winter). This should do the trick:

String[] allTimeZones = TimeZone.getAvailableIDs();
Date now = new Date();
for (int i = 0; i < allTimeZones.length; i++) {
    TimeZone tz = TimeZone.getTimeZone(allTimeZones[i]);
    System.out.format("%s;%s; %f \n", allTimeZones[i], 
            tz.getDisplayName(tz.inDaylightTime(now), TimeZone.LONG), 
            (float) (tz.getOffset(now.getTime())/3600000.0));
}
like image 96
Jimothy Avatar answered Nov 11 '22 19:11

Jimothy


tl;dr

Then

ZoneId
.of( "America/New_York" )
.getRules()
.isDaylightSavings( 
    ZonedDateTime
    .of(
        LocalDate.of( 2013 , Month.APRIL , 5 ) ,
        LocalTime.of( 15 , 34 ) ,
        ZoneId.of( "America/New_York")
    )
    .toInstant()
)

true

…and…

ZoneId
.of( "America/New_York" )
.getRules()
.getOffset( 
    ZonedDateTime
    .of(
        LocalDate.of( 2013 , Month.APRIL , 5 ) ,
        LocalTime.of( 15 , 34 ) ,
        ZoneId.of( "America/New_York")
    )
    .toInstant()
)

-04:00

Now

ZoneId
.of( "America/New_York" )
.getRules()
.isDaylightSavings( 
    Instant.now()
)

false

…and…

ZoneId
.of( "America/New_York" )
.getRules()
.getOffset( 
    Instant.now()
)

-05:00

See this code run live at IdeOne.com.

java.time

The modern approach uses the java.time classes that years ago supplanted the terrible date-time classes bundled with the earliest versions of Java.

Single zone

Use ZoneId rather than TimeZone.

ZoneId z = ZoneId.of( "America/New_York" ) ;

Get the rules for that zone, the history of past, present, and future changes to the offset used by the people of this particular region.

ZoneRules rules = z.getRules();

Capture the current moment.

Instant now = Instant.now();  // Capture the current moment as seen in UTC (an offset of zero hours-minutes-seconds).

We must specify a moment when asking for current offset and current Daylight Saving Time (DST) information.

ZoneOffset offset = rules.getOffset( now );
boolean inDST = rules.isDaylightSavings( now );

Dump to console.

You asked for offset as something like -4.000000. But that is not how offsets are commonly represented. So here we use the common representation of an offset’s hours, minutes, and seconds in clock-style, such as -05:00. Per the ISO 8601 standard, a negative number is behind UTC while positive is ahead of UTC. Be aware that same protocols do the opposite, so always know the protocol involved in your work.

System.out.println( "now = " + now );
System.out.println( "offset = " + offset );
System.out.println( "inDST = " + inDST );

When run.

now = 2020-02-10T00:21:26.426569Z

offset = -05:00

inDST = false

Let's see how clocks hanging on walls in that region would read. We use ZonedDateTime to represent a moment as seen in a time zone.

ZonedDateTime zdt = now.atZone( z );

zdt = 2020-02-09T19:21:26.426569-05:00[America/New_York]

Is the offset indicates, the wall-clock time in that region is five hours earlier than UTC. So we have an hour of 19 rather than 0, and a date of the 9th rather than the 10th. Same moment, different wall-clock time.

Looping all zones

Get a Set of time zone id strings.

Set < String > zoneIds = ZoneId.getAvailableZoneIds();

Specify the length of their display name. Specify a Locale to be used in automatically localizing the name of the zone.

TextStyle style = TextStyle.FULL;
Locale locale = Locale.CANADA_FRENCH;

Capture the current moment to be used in determining the offset currently in use.

Instant now = Instant.now() ;  // Capture the current moment as seen in UTC.

Loop the zone id strings, getting the ZoneId object for each.

System.out.println( "now = " + now );
System.out.println( "" );
System.out.println( "zoneId | localized | offset" );
for ( String zoneId : zoneIds )
{
    ZoneId z = ZoneId.of( zoneId );
    System.out.println( zoneId + " | " + z.getDisplayName( style , locale ) + " | " + z.getRules().getOffset( now ) );
}

Here is part of the output. Truncated because of a 32K limit on an Answer in Stack Overflow.

now = 2020-02-10T00:09:43.073300Z

zoneId | localized | offset
Asia/Aden | heure de l’Arabie | +03:00
America/Cuiaba | heure de l’Amazonie | -04:00
Etc/GMT+9 | UTC−9:00 | -09:00
Etc/GMT+8 | UTC−8:00 | -08:00
Africa/Nairobi | Heure d'Afrique de l'Est | +03:00
America/Marigot | heure de l’Atlantique | -04:00
Asia/Aqtau | Heure d'Aqtau | +05:00
Pacific/Kwajalein | Heure des Iles Marshall | +12:00
America/El_Salvador | heure du Centre | -06:00
Asia/Pontianak | Heure de l'Indonésie occidentale | +07:00
Africa/Cairo | heure d’Europe de l’Est | +02:00
Pacific/Pago_Pago | heure des Samoa | -11:00
Africa/Mbabane | Afrique du Sud | +02:00
Asia/Kuching | Heure de Malaisie | +08:00
Pacific/Honolulu | heure d’Hawaï-Aléoutiennes | -10:00
Pacific/Rarotonga | heure des îles Cook | -10:00
America/Guatemala | heure du Centre | -06:00
Australia/Hobart | heure de l’Est de l’Australie | +11:00
Europe/London | Heure britannique | Z
America/Belize | heure du Centre | -06:00
America/Panama | heure de l’Est | -05:00
Asia/Chungking | heure de Chine | +08:00
America/Managua | heure du Centre | -06:00
America/Indiana/Petersburg | heure de l’Est | -05:00
Asia/Yerevan | heure de l’Arménie | +04:00
Europe/Brussels | heure d’Europe centrale | +01:00
GMT | Heure de Greenwich | Z
Europe/Warsaw | heure d’Europe centrale | +01:00
America/Chicago | heure du Centre | -06:00
Asia/Kashgar | Chine | +06:00
Chile/Continental | heure du Chili | -03:00
Pacific/Yap | Heure de Chuuk | +10:00
CET | Heure d'Europe centrale | +01:00
Etc/GMT-1 | UTC+1:00 | +01:00
Etc/GMT-0 | heure moyenne de Greenwich | Z
Europe/Jersey | Heure britannique | Z
America/Tegucigalpa | heure du Centre | -06:00
Etc/GMT-5 | UTC+5:00 | +05:00
Europe/Istanbul | Heure d'Europe de l'Est | +03:00
America/Eirunepe | heure de l’Acre | -05:00
Etc/GMT-4 | UTC+4:00 | +04:00
America/Miquelon | heure de Saint-Pierre-et-Miquelon | -03:00
Etc/GMT-3 | UTC+3:00 | +03:00
Europe/Luxembourg | heure d’Europe centrale | +01:00
Etc/GMT-2 | UTC+2:00 | +02:00
Etc/GMT-9 | UTC+9:00 | +09:00
America/Argentina/Catamarca | heure de l’Argentine | -03:00
Etc/GMT-8 | UTC+8:00 | +08:00
Etc/GMT-7 | UTC+7:00 | +07:00
Etc/GMT-6 | UTC+6:00 | +06:00
Europe/Zaporozhye | heure d’Europe de l’Est | +02:00
Canada/Yukon | heure du Pacifique | -08:00
Canada/Atlantic | heure de l’Atlantique | -04:00
Atlantic/St_Helena | Heure de Greenwich | Z
Australia/Tasmania | heure de l’Est de l’Australie | +11:00
Libya | heure d’Europe de l’Est | +02:00
Europe/Guernsey | Heure britannique | Z
America/Grand_Turk | heure de l’Est | -05:00
US/Pacific-New | heure du Pacifique | -08:00
Asia/Samarkand | heure de l’Ouzbékistan | +05:00
America/Argentina/Cordoba | heure de l’Argentine | -03:00
Asia/Phnom_Penh | Heure d'Indochine | +07:00
Africa/Kigali | Heure d'Afrique centrale | +02:00
Asia/Almaty | Heure d'Alma-Ata | +06:00
US/Alaska | heure de l’Alaska | -09:00
Asia/Dubai | Golfe | +04:00
Europe/Isle_of_Man | Heure britannique | Z
America/Araguaina | heure de Brasilia | -03:00
Cuba | heure de Cuba | -05:00
Asia/Novosibirsk | heure de Novossibirsk | +07:00
America/Argentina/Salta | heure de l’Argentine | -03:00
Etc/GMT+3 | UTC−3:00 | -03:00
Africa/Tunis | heure d’Europe centrale | +01:00
Etc/GMT+2 | UTC−2:00 | -02:00
Etc/GMT+1 | UTC−1:00 | -01:00
Pacific/Fakaofo | Heure de Tokelau | +13:00
Africa/Tripoli | heure d’Europe de l’Est | +02:00
Etc/GMT+0 | heure moyenne de Greenwich | Z
Israel | heure d’Israël | +02:00
Africa/Banjul | Heure de Greenwich | Z
Etc/GMT+7 | UTC−7:00 | -07:00
Indian/Comoro | Heure d'Afrique de l'Est | +03:00
Etc/GMT+6 | UTC−6:00 | -06:00
Etc/GMT+5 | UTC−5:00 | -05:00
Etc/GMT+4 | UTC−4:00 | -04:00
Pacific/Port_Moresby | Heure de Papouasie-Nouvelle-Guinée | +10:00
US/Arizona | heure des Rocheuses | -07:00
Antarctica/Syowa | Heure de Syowa | +03:00
Indian/Reunion | Heure de la Réunion | +04:00
Pacific/Palau | Heure de Palaos | +09:00
Europe/Kaliningrad | heure d’Europe de l’Est | +02:00
America/Montevideo | heure de l’Uruguay | -03:00
Africa/Windhoek | Heure d'Afrique centrale | +02:00
Asia/Karachi | heure du Pakistan | +05:00
Africa/Mogadishu | Heure d'Afrique de l'Est | +03:00
Australia/Perth | heure de l’Ouest de l’Australie | +08:00
Brazil/East | heure de Brasilia | -03:00
Etc/GMT | heure moyenne de Greenwich | Z
Asia/Chita | heure de Iakoutsk | +09:00
Pacific/Easter | heure de l’île de Pâques | -05:00
Antarctica/Davis | Heure de Davis | +07:00
Antarctica/McMurdo | heure de la Nouvelle-Zélande | +13:00
Asia/Macao | heure de Chine | +08:00
America/Manaus | heure de l’Amazonie | -04:00
Africa/Freetown | Heure de Greenwich | Z
Europe/Bucharest | heure d’Europe de l’Est | +02:00
Asia/Tomsk | Tomsk Time | +07:00
America/Argentina/Mendoza | heure de l’Argentine | -03:00
Asia/Macau | heure de Chine | +08:00
Europe/Malta | heure d’Europe centrale | +01:00
Mexico/BajaSur | heure du Pacifique mexicain | -07:00
Pacific/Tahiti | Heure de Tahiti | -10:00
Africa/Asmera | Heure d'Afrique de l'Est | +03:00
Europe/Busingen | heure d’Europe centrale | +01:00
America/Argentina/Rio_Gallegos | heure de l’Argentine | -03:00
Africa/Malabo | heure d’Afrique de l’Ouest | +01:00
Europe/Skopje | heure d’Europe centrale | +01:00
America/Catamarca | heure de l’Argentine | -03:00
America/Godthab | heure de l’Ouest du Groenland | -03:00
Europe/Sarajevo | heure d’Europe centrale | +01:00
Australia/ACT | heure de l’Est de l’Australie | +11:00
GB-Eire | Heure britannique | Z
Africa/Lagos | heure d’Afrique de l’Ouest | +01:00
America/Cordoba | heure de l’Argentine | -03:00
Europe/Rome | heure d’Europe centrale | +01:00
Asia/Dacca | heure du Bangladesh | +06:00
Indian/Mauritius | heure de Maurice | +04:00
Pacific/Samoa | heure des Samoa | -11:00
America/Regina | heure du Centre | -06:00
America/Fort_Wayne | heure de l’Est | -05:00
America/Dawson_Creek | heure des Rocheuses | -07:00
Africa/Algiers | heure d’Europe centrale | +01:00
Europe/Mariehamn | heure d’Europe de l’Est | +02:00
America/St_Johns | heure de Terre-Neuve | -03:30
America/St_Thomas | heure de l’Atlantique | -04:00
Europe/Zurich | heure d’Europe centrale | +01:00
America/Anguilla | heure de l’Atlantique | -04:00
Asia/Dili | Heure de Timor-Leste | +09:00
America/Denver | heure des Rocheuses | -07:00
Africa/Bamako | Heure de Greenwich | Z
Europe/Saratov | Saratov Time | +04:00
GB | Heure britannique | Z
Mexico/General | heure du Centre | -06:00
Pacific/Wallis | Heure de Wallis-et-Futuna | +12:00
Europe/Gibraltar | heure d’Europe centrale | +01:00
Africa/Conakry | Heure de Greenwich | Z
Africa/Lubumbashi | Heure d'Afrique centrale | +02:00
Asia/Istanbul | Heure d'Europe de l'Est | +03:00
America/Havana | heure de Cuba | -05:00
NZ-CHAT | heure des îles Chatham | +13:45
Asia/Choibalsan | heure de Choibalsan | +08:00
America/Porto_Acre | heure de l’Acre | -05:00
Asia/Omsk | heure d’Omsk | +06:00
Europe/Vaduz | heure d’Europe centrale | +01:00
US/Michigan | heure de l’Est | -05:00
Asia/Dhaka | heure du Bangladesh | +06:00
America/Barbados | heure de l’Atlantique | -04:00
Europe/Tiraspol | heure d’Europe de l’Est | +02:00
Atlantic/Cape_Verde | heure du Cap-Vert | -01:00
Asia/Yekaterinburg | heure d’Ekaterinbourg | +05:00
America/Louisville | heure de l’Est | -05:00
Pacific/Johnston | heure d’Hawaï-Aléoutiennes | -10:00
Pacific/Chatham | heure des îles Chatham | +13:45
Europe/Ljubljana | heure d’Europe centrale | +01:00
America/Sao_Paulo | heure de Brasilia | -03:00
Asia/Jayapura | Heure d'Indonésie orientale | +09:00
America/Curacao | heure de l’Atlantique | -04:00
Asia/Dushanbe | Heure du Tadjikistan | +05:00
America/Guyana | Heure de Guyana | -04:00
America/Guayaquil | Heure de l'Equateur | -05:00
America/Martinique | heure de l’Atlantique | -04:00
Portugal | heure d’Europe de l’Ouest | Z
Europe/Berlin | heure d’Europe centrale | +01:00
Europe/Moscow | heure de Moscou | +03:00
Europe/Chisinau | heure d’Europe de l’Est | +02:00
America/Puerto_Rico | heure de l’Atlantique | -04:00
America/Rankin_Inlet | heure du Centre | -06:00
Pacific/Ponape | Ponape | +11:00
Europe/Stockholm | heure d’Europe centrale | +01:00
Europe/Budapest | heure d’Europe centrale | +01:00
America/Argentina/Jujuy | heure de l’Argentine | -03:00
Australia/Eucla | heure du centre-ouest de l’Australie | +08:45
Asia/Shanghai | heure de Chine | +08:00
Universal | Temps universel coordonné | Z
Europe/Zagreb | heure d’Europe centrale | +01:00
America/Port_of_Spain | heure de l’Atlantique | -04:00
Europe/Helsinki | heure d’Europe de l’Est | +02:00
Asia/Beirut | heure d’Europe de l’Est | +02:00
Asia/Tel_Aviv | heure d’Israël | +02:00
Pacific/Bougainville | Bougainville Time | +11:00
US/Central | heure du Centre | -06:00
Africa/Sao_Tome | Heure de Greenwich | Z
Indian/Chagos | Heure de l'océan Indien | +06:00
America/Cayenne | Heure de Guyane française | -03:00
Asia/Yakutsk | heure de Iakoutsk | +09:00
Pacific/Galapagos | Heure des Galapagos | -06:00
Australia/North | heure du centre de l’Australie | +09:30
Europe/Paris | heure d’Europe centrale | +01:00
Africa/Ndjamena | heure d’Afrique de l’Ouest | +01:00
Pacific/Fiji | heure des îles Fidji | +12:00
America/Rainy_River | heure du Centre | -06:00
Indian/Maldives | Heure des Maldives | +05:00
Australia/Yancowinna | heure du centre de l’Australie | +10:30
SystemV/AST4 | heure de l’Atlantique | -04:00
Asia/Oral | Heure d'Oral | +05:00
America/Yellowknife | heure des Rocheuses | -07:00
Pacific/Enderbury | Heure de l'Ile de Phoenix | +13:00
America/Juneau | heure de l’Alaska | -09:00
Australia/Victoria | heure de l’Est de l’Australie | +11:00
America/Indiana/Vevay | heure de l’Est | -05:00
Asia/Tashkent | heure de l’Ouzbékistan | +05:00
Asia/Jakarta | Heure de l'Indonésie occidentale | +07:00
Africa/Ceuta | heure d’Europe centrale | +01:00
Asia/Barnaul | Barnaul Time | +07:00
America/Recife | heure de Brasilia | -03:00
America/Buenos_Aires | heure de l’Argentine | -03:00
America/Noronha | heure de Fernando de Noronha | -02:00
America/Swift_Current | heure du Centre | -06:00
Australia/Adelaide | heure du centre de l’Australie | +10:30
America/Metlakatla | heure de l’Alaska | -09:00
Africa/Djibouti | Heure d'Afrique de l'Est | +03:00
America/Paramaribo | Heure du Surinam | -03:00
Asia/Qostanay | Kostanay Time | +06:00
Europe/Simferopol | heure de Moscou | +03:00
Europe/Sofia | heure d’Europe de l’Est | +02:00
Africa/Nouakchott | Heure de Greenwich | Z
Europe/Prague | heure d’Europe centrale | +01:00
America/Indiana/Vincennes | heure de l’Est | -05:00
Antarctica/Mawson | Heure de Mawson | +05:00
America/Kralendijk | heure de l’Atlantique | -04:00
Antarctica/Troll | Troll Time | Z
Europe/Samara | heure de Samara | +04:00
Indian/Christmas | Heure de l'Ile Christmas | +07:00
America/Antigua | heure de l’Atlantique | -04:00
Pacific/Gambier | Heure de Gambi | -09:00
America/Indianapolis | heure de l’Est | -05:00
America/Inuvik | heure des Rocheuses | -07:00
America/Iqaluit | heure de l’Est | -05:00
Pacific/Funafuti | Heure de Tuvalu | +12:00
UTC | Temps universel coordonné | Z
Antarctica/Macquarie | Heure de l'Ile Macquarie | +11:00
Canada/Pacific | heure du Pacifique | -08:00
America/Moncton | heure de l’Atlantique | -04:00
Africa/Gaborone | Heure d'Afrique centrale | +02:00
Pacific/Chuuk | Heure de Chuuk | +10:00
Asia/Pyongyang | heure de la Corée | +09:00
America/St_Vincent | heure de l’Atlantique | -04:00
Asia/Gaza | heure d’Europe de l’Est | +02:00
Etc/Universal | Temps universel coordonné | Z
PST8PDT | heure du Pacifique | -08:00
Atlantic/Faeroe | heure d’Europe de l’Ouest | Z
Asia/Qyzylorda | Heure de Kyzylorda | +05:00
Canada/Newfoundland | heure de Terre-Neuve | -03:30
America/Kentucky/Louisville | heure de l’Est | -05:00
America/Yakutat | heure de l’Alaska | -09:00
Asia/Ho_Chi_Minh | Heure d'Indochine | +07:00
Antarctica/Casey | heure de l’Ouest de l’Australie | +08:00
Europe/Copenhagen | heure d’Europe centrale | +01:00
Africa/Asmara | Heure d'Afrique de l'Est | +03:00
Atlantic/Azores | heure des Açores | -01:00
Europe/Vienna | heure d’Europe centrale | +01:00
ROK | heure de la Corée | +09:00
Pacific/Pitcairn | Pitcairn | -08:00
America/Mazatlan | heure du Pacifique mexicain | -07:00
Australia/Queensland | heure de l’Est de l’Australie | +10:00
Pacific/Nauru | Heure de Nauru | +12:00
Europe/Tirane | heure d’Europe centrale | +01:00
Asia/Kolkata | Inde | +05:30
SystemV/MST7 | heure des Rocheuses | -07:00
Australia/Canberra | heure de l’Est de l’Australie | +11:00
MET | MET | +01:00
Australia/Broken_Hill | heure du centre de l’Australie | +10:30
Europe/Riga | heure d’Europe de l’Est | +02:00
America/Dominica | heure de l’Atlantique | -04:00
Africa/Abidjan | Heure de Greenwich | Z
America/Mendoza | heure de l’Argentine | -03:00
America/Santarem | heure de Brasilia | -03:00
Kwajalein | Heure des Iles Marshall | +12:00
America/Asuncion | heure du Paraguay | -03:00
Asia/Ulan_Bator | heure d’Oulan-Bator | +08:00
NZ | heure de la Nouvelle-Zélande | +13:00
America/Boise | heure des Rocheuses | -07:00
Australia/Currie | heure de l’Est de l’Australie | +11:00
EST5EDT | heure de l’Est | -05:00
Pacific/Guam | Chamorro | +10:00
Pacific/Wake | Heure de Wake | +12:00
Atlantic/Bermuda | heure de l’Atlantique | -04:00
America/Costa_Rica | heure du Centre | -06:00
America/Dawson | heure du Pacifique | -08:00
Asia/Chongqing | heure de Chine | +08:00
Eire | Heure irlandaise | Z
Europe/Amsterdam | heure d’Europe centrale | +01:00
America/Indiana/Knox | heure du Centre | -06:00
America/North_Dakota/Beulah | heure du Centre | -06:00
Africa/Accra | Heure du Ghana | Z
Atlantic/Faroe | heure d’Europe de l’Ouest | Z
Mexico/BajaNorte | heure du Pacifique | -08:00
America/Maceio | heure de Brasilia | -03:00
Etc/UCT | Temps universel coordonné | Z
Pacific/Apia | heure d’Apia | +14:00
GMT0 | heure moyenne de Greenwich | Z
America/Atka | heure d’Hawaï-Aléoutiennes | -10:00
Pacific/Niue | Heure de Niue | -11:00
Australia/Lord_Howe | heure de Lord Howe | +11:00
Europe/Dublin | Heure irlandaise | Z
Pacific/Truk | Heure de Chuuk | +10:00
MST7MDT | heure des Rocheuses | -07:00
America/Monterrey | heure du Centre | -06:00
America/Nassau | heure de l’Est | -05:00
America/Jamaica | heure de l’Est | -05:00
Asia/Bishkek | Heure du Kirghizistan | +06:00
America/Atikokan | heure de l’Est | -05:00
Atlantic/Stanley | heure des îles Malouines | -03:00
Australia/NSW | heure de l’Est de l’Australie | +11:00
US/Hawaii | heure d’Hawaï-Aléoutiennes | -10:00
SystemV/CST6 | heure du Centre | -06:00
Indian/Mahe | Heure des Seychelles | +04:00
Asia/Aqtobe | Heure d'Aqtobe | +05:00
America/Sitka | heure de l’Alaska | -09:00
Asia/Vladivostok | heure de Vladivostok | +10:00
Africa/Libreville | heure d’Afrique de l’Ouest | +01:00
Africa/Maputo | Heure d'Afrique centrale | +02:00
Zulu | Temps universel coordonné | Z
America/Kentucky/Monticello | heure de l’Est | -05:00
Africa/El_Aaiun | Heure d'Europe de l'Ouest | +01:00
Africa/Ouagadougou | Heure de Greenwich | Z
America/Coral_Harbour | heure de l’Est | -05:00
Pacific/Marquesas | Heure des Marquises | -09:30
Brazil/West | heure de l’Amazonie | -04:00
America/Aruba | heure de l’Atlantique | -04:00
America/North_Dakota/Center | heure du Centre | -06:00
America/Cayman | heure de l’Est | -05:00
Asia/Ulaanbaatar | heure d’Oulan-Bator | +08:00
Asia/Baghdad | heure de l’Arabie | +03:00
Europe/San_Marino | heure d’Europe centrale | +01:00
America/Indiana/Tell_City | heure du Centre | -06:00
America/Tijuana | heure du Pacifique | -08:00
Pacific/Saipan | Chamorro | +10:00
SystemV/YST9 | Alaska | -09:00
Africa/Douala | heure d’Afrique de l’Ouest | +01:00
America/Chihuahua | heure du Pacifique mexicain | -07:00
America/Ojinaga | heure des Rocheuses | -07:00
Asia/Hovd | heure de Hovd | +07:00
America/Anchorage | heure de l’Alaska | -09:00
Chile/EasterIsland | heure de l’île de Pâques | -05:00
America/Halifax | heure de l’Atlantique | -04:00
Antarctica/Rothera | Heure de Rothera | -03:00
America/Indiana/Indianapolis | heure de l’Est | -05:00
US/Mountain | heure des Rocheuses | -07:00
Asia/Damascus | heure d’Europe de l’Est | +02:00
America/Argentina/San_Luis | heure de l’Ouest argentin | -03:00
America/Santiago | heure du Chili | -03:00
Asia/Baku | heure de l’Azerbaïdjan | +04:00
America/Argentina/Ushuaia | heure de l’Argentine | -03:00
Atlantic/Reykjavik | Heure de Greenwich | Z
Africa/Brazzaville | heure d’Afrique de l’Ouest | +01:00
Africa/Porto-Novo | heure d’Afrique de l’Ouest | +01:00
America/La_Paz | Heure de Bolivie | -04:00
Antarctica/DumontDUrville | Heure de Dumont-d'Urville | +10:00
Asia/Taipei | heure de Taipei | +08:00
Antarctica/South_Pole | heure de la Nouvelle-Zélande | +13:00
Asia/Manila | heure des Philippines | +08:00
Asia/Bangkok | Heure d'Indochine | +07:00
Africa/Dar_es_Salaam | Heure d'Afrique de l'Est | +03:00
Poland | heure d’Europe centrale | +01:00
Atlantic/Madeira | heure d’Europe de l’Ouest | Z
Antarctica/Palmer | Heure du Chili | -03:00
America/Thunder_Bay | heure de l’Est | -05:00
Africa/Addis_Ababa | Heure d'Afrique de l'Est | +03:00
Asia/Yangon | Heure de Myanmar | +06:30
Europe/Uzhgorod | heure d’Europe de l’Est | +02:00
Brazil/DeNoronha | heure de Fernando de Noronha | -02:00
Asia/Ashkhabad | heure du Turkménistan | +05:00
Etc/Zulu | Temps universel coordonné | Z
America/Indiana/Marengo | heure de l’Est | -05:00
America/Creston | heure des Rocheuses | -07:00
America/Punta_Arenas | Punta Arenas Time | -03:00
America/Mexico_City | heure du Centre | -06:00
Antarctica/Vostok | Heure de Vostok | +06:00
Asia/Jerusalem | heure d’Israël | +02:00
Europe/Andorra | heure d’Europe centrale | +01:00
US/Samoa | heure des Samoa | -11:00
PRC | heure de Chine | +08:00
Asia/Vientiane | Heure d'Indochine | +07:00
Pacific/Kiritimati | Heure de l'Ile de Line | +14:00
America/Matamoros | heure du Centre | -06:00
America/Blanc-Sablon | heure de l’Atlantique | -04:00
Asia/Riyadh | heure de l’Arabie | +03:00
Iceland | Heure de Greenwich | Z
Pacific/Pohnpei | Ponape | +11:00
Asia/Ujung_Pandang | Heure d'Indonésie centrale | +08:00
Atlantic/South_Georgia | Géorgie du Sud | -02:00
Europe/Lisbon | heure d’Europe de l’Ouest | Z
Asia/Harbin | heure de Chine | +08:00
Europe/Oslo | heure d’Europe centrale | +01:00
Asia/Novokuznetsk | heure de Krasnoïarsk | +07:00
CST6CDT | heure du Centre | -06:00
Atlantic/Canary | heure d’Europe de l’Ouest | Z
America/Knox_IN | heure du Centre | -06:00
Asia/Kuwait | heure de l’Arabie | +03:00
SystemV/HST10 | heure d’Hawaï-Aléoutiennes | -10:00
Pacific/Efate | heure du Vanuatu | +11:00
Africa/Lome | Heure de Greenwich | Z
America/Bogota | heure de Colombie | -05:00
America/Menominee | heure du Centre | -06:00
America/Adak | heure d’Hawaï-Aléoutiennes | -10:00
Pacific/Norfolk | Heure de Norfolk | +11:00
Europe/Kirov | Kirov Time | +03:00
America/Resolute | heure du Centre | -06:00
Pacific/Tarawa | Heure de Kiribati | +12:00
Africa/Kampala | Heure d'Afrique de l'Est | +03:00
Asia/Krasnoyarsk | heure de Krasnoïarsk | +07:00
Greenwich | Heure de Greenwich | Z
SystemV/EST5 | heure de l’Est | -05:00
America/Edmonton | heure des Rocheuses | -07:00
Europe/Podgorica | heure d’Europe centrale | +01:00
Australia/South | heure du centre de l’Australie | +10:30
Canada/Central | heure du Centre | -06:00
Africa/Bujumbura | Heure d'Afrique centrale | +02:00
America/Santo_Domingo | heure de l’Atlantique | -04:00
US/Eastern | heure de l’Est | -05:00
Europe/Minsk | heure de Moscou | +03:00
Pacific/Auckland | heure de la Nouvelle-Zélande | +13:00
Africa/Casablanca | Heure d'Europe de l'Ouest | +01:00
…

About java.time

The java.time framework is built into Java 8 and later. These classes supplant the troublesome old legacy date-time classes such as java.util.Date, Calendar, & SimpleDateFormat.

To learn more, see the Oracle Tutorial. And search Stack Overflow for many examples and explanations. Specification is JSR 310.

The Joda-Time project, now in maintenance mode, advises migration to the java.time classes.

You may exchange java.time objects directly with your database. Use a JDBC driver compliant with JDBC 4.2 or later. No need for strings, no need for java.sql.* classes.

Where to obtain the java.time classes?

  • Java SE 8, Java SE 9, Java SE 10, Java SE 11, and later - Part of the standard Java API with a bundled implementation.
    • Java 9 adds some minor features and fixes.
  • Java SE 6 and Java SE 7
    • Most of the java.time functionality is back-ported to Java 6 & 7 in ThreeTen-Backport.
  • Android
    • Later versions of Android bundle implementations of the java.time classes.
    • For earlier Android (<26), the ThreeTenABP project adapts ThreeTen-Backport (mentioned above). See How to use ThreeTenABP….

The ThreeTen-Extra project extends java.time with additional classes. This project is a proving ground for possible future additions to java.time. You may find some useful classes here such as Interval, YearWeek, YearQuarter, and more.

like image 37
Basil Bourque Avatar answered Nov 11 '22 19:11

Basil Bourque