Интернализация Java - UTC

UTC означает всемирное координированное время. Это стандарт времени и широко используется во всем мире. Все часовые пояса вычисляются относительно UTC в качестве смещения. Например, время в Копенгагене, Дания - UTC + 1, что означает время UTC плюс один час. Он не зависит от дневного света и должен использоваться для хранения даты и времени в базах данных.

Преобразование часовых поясов

В следующем примере будет продемонстрировано преобразование различных часовых поясов. Будем печатать час дня и время в миллисекундах. Первый будет отличаться, а второй останется прежним.

IOTester.java

import java.text.ParseException;
import java.util.Calendar;
import java.util.GregorianCalendar;
import java.util.TimeZone;

public class I18NTester {
   public static void main(String[] args) throws ParseException {
   
      Calendar date = new GregorianCalendar();

      date.setTimeZone(TimeZone.getTimeZone("Etc/UTC"));
      date.set(Calendar.HOUR_OF_DAY, 12);

      System.out.println("UTC: " + date.get(Calendar.HOUR_OF_DAY));
      System.out.println("UTC: " + date.getTimeInMillis());

      date.setTimeZone(TimeZone.getTimeZone("Europe/Copenhagen"));
      System.out.println("CPH: " + date.get(Calendar.HOUR_OF_DAY));
      System.out.println("CPH: " + date.getTimeInMillis());

      date.setTimeZone(TimeZone.getTimeZone("America/New_York"));
      System.out.println("NYC: " + date.get(Calendar.HOUR_OF_DAY));
      System.out.println("NYC: " + date.getTimeInMillis());
   }
}

Вывод

Он напечатает следующий результат.

UTC: 12
UTC: 1511956997540
CPH: 13
CPH: 1511956997540
NYC: 7
NYC: 1511956997540

Доступные часовые пояса

В следующем примере будут показаны часовые пояса, доступные в системе.

IOTester.java

import java.text.ParseException;
import java.util.TimeZone;

public class I18NTester {
   public static void main(String[] args) throws ParseException {
      String[] availableIDs = TimeZone.getAvailableIDs();

      for(String id : availableIDs) {
         System.out.println("Timezone = " + id);
      }
   }
}

Вывод

Он напечатает следующий результат.

Timezone = Africa/Abidjan
Timezone = Africa/Accra
...
Timezone = VST
Распечатать