Есть ли разница между часовыми поясами UTC и Etc/UTC?


В документации PHP, список поддерживаемых часовых поясов, UTC перечисляется дважды:

  • UTC
  • Etc/UTC
Есть ли какая-то концептуальная разница между этими двумя понятиями, или они просто синонимы?
3 30

3 ответа:

Etc/UTC указывается для часового пояса, отображаемое имя которого UTC. То есть, это длинные и короткие имена для одного и того же часового пояса, в соответствии с базой данных часовых поясов IANA .

Во-первых, чтобы ответить на вопрос:
Между часовыми поясами UTC и Etc/UTC нет разницы.

Etc/UTC является часовым поясом в базе данных Olson-timezone (TZ database ), также известной как IANA-timezones-database, в которой все часовые пояса соответствуют единому соглашению об именовании: Area/Location.

Поскольку некоторые часовые пояса не могут быть отнесены к какой-либо области мира (например, континентам или океанам), специальная область Etc (Etcetera ) был введен. Этот применяется главным образом к административным часовым поясам, таким как UTC.
Таким образом, в соответствии с Соглашением об именовании универсальное координированное время(зона) называется Etc/UTC в базе данных tz.

Для административных часовых поясов, отличных от UTC (например GMT+4, GMT-8), база данных tz использует знакиPOSIX-стиля в именах зон. POSIX имеет положительные знаки для зон, которые находятся позади Гринвича (к западу от Гринвича) и отрицательные знаки для зон, которые находятся впереди Гринвича (к востоку от Гринвича). Гринвич).

В POSIX-стиле знаки в часовых поясах являются противоположностью определение часовых поясов в настоящее время широко распространена и в основном используется ИСО 8601. В формате часового пояса ISO 8601 отрицательные знаки указывают на то, что зона находится позади UTC (к западу от Гринвича), а положительные знаки указывают на то, что зона находится впереди UTC (к востоку от Гринвича). Это то, что стало стандартным использованием в настоящее время.

Возможные причины для противоположного определения в POSIX:

  • POSIX является частью UNIX, который был разработан в США, что находится за UTC (западнее Гринвича). Формат POSIX позволяет представлять часовые пояса США в виде EST5, PST8, то есть без знака ( + ).
  • обычно компьютерные программы и операционные системы делают все внутренне в UTC времени. С помощью знаков POSIX-стиля вы можете добавить время и часовой пояс, чтобы получить время UTC. Пример: "03: 30 PST8" или "03:30 GMT+8" означает, что это "11: 30 UTC".

ETC / GMT+4 - это то же самое, что GMT-4.

public static void main(String[] args) {
    TimeZone tz = TimeZone.getTimeZone("Etc/GMT-7");
    System.out.println(tz);

    tz = TimeZone.getTimeZone("GMT+7");
    System.out.println(tz);

}

Вы можете проверить это сами.

Но я не знаю, что означает ETC..