
Форматы даты и времени особенно важны при заключении сделок и организации встреч. Однако в эпоху цифровой глобализации становится все труднее указывать даты и время так, чтобы их понимали все. Различные часовые пояса по всему миру и различные культурные традиции форматирования времени затрудняют указание точного времени и даты через национальные границы. ISO 8601 решает именно эту проблему. Приняв этот международный стандарт, все заинтересованные стороны во всем мире могут однозначно указывать время и даты.
Международный стандарт ISO 8601 содержит рекомендации по числовым форматам даты и времени.
Вы можете использовать различные инструменты или скрипты для преобразования информации о дате в нужный формат даты ISO. В этой статье объясняется все, что вам нужно знать о международном стандарте для дат и времени.
Основные принципы стандарта ISO 8601
Стандарт ISO 8601 определяет международно признанный формат представления дат и времени. Время выражается с помощью нотации часы-минуты-секунды. В случае с датами используется формат год-месяц-день. Этот основной формат позволяет записывать числа непосредственно друг за другом. Для большей ясности они также могут быть разделены разделителями. Согласно базовому формату ISO 8601, дата «7 сентября 2019 года» записывается следующим образом: «20190907», или при выражении с разделителями: «2019-09-07». Время делится на часы, минуты и секунды. Поэтому временная метка ISO 8601 будет выглядеть следующим образом: 12:07:22. Представление дат в формате ISO устраняет необходимость в обозначениях, характерных для конкретной страны, по крайней мере, в электронных форматах. Таким образом, информация о времени и дате стандартизируется, что приводит к уменьшению количества проблем при общении.
Стандарт ISO 8601 также известен как ANSI INCITS 30-1997 (R2008) или NIST FIPS PUB 4-2 в США. Более того, он используется не только для временных значений, но и для длительностей. В таких случаях начальная дата или время отделяется от последующей продолжительности буквой «P». Продолжительность, которая начинается 6 сентября 2019 года в 20:00 и длится один месяц, пять дней и три часа, по стандарту ISO будет выражена следующим образом: 2019-09-06T20P1M5T3H.
Согласно стандарту ISO, все значения, такие как время, дата или продолжительность, отображаются в определенном порядке: Они начинаются с самой большой единицы и переходят к следующему меньшему значению. Эта последовательность известна как «нисходящая нотация». Она соответствует естественному математическому значению чисел. Поэтому большие единицы всегда записываются перед меньшими. Это выгодно, поскольку означает, что лексикографическая и хронологическая сортировка дат и времени дает одинаковый результат.
Табличное представление дат и времени по ISO 8601
Формат в соответствии с ISO 8601 | Диапазоны значений |
---|---|
Год (Y) | ГГГГ, четырехзначный, сокращенный до двузначного |
Месяц (M) | ММ, от 01 до 12 |
Неделя (W) | WW, от 01 до 53 |
День (D) | D, день недели, от 1 до 7 |
Час (h) | hh, от 00 до 23, 24:00:00 в качестве конечного времени |
Минута (m) | мм, от 00 до 59 |
секунда (s) | ss, от 00 до 59 |
Десятичная дробь (f) | Доли секунд, любая степень точности |
Во всех форматах стандарта значения дат или времени разделены на различные единицы, такие как год, месяц, день, час и т.д. Каждая отдельная единица представлена фиксированным количеством цифр. Особенно в научных областях, разработке программного обеспечения и международной переписке стандарт используется для того, чтобы снизить риск ошибок в значениях времени. Стандартизированная на международном уровне временная метка ISO 8601 значительно снижает этот риск.
После значений даты и времени часто указывается разница по сравнению с общепризнанным универсальным временем (сокращенно UTC). Таким образом, формат учитывает разницу в часовых поясах или летнее время в конкретной стране. В качестве соответствующего значения обычно используется буква «Z».
Табличное представление дат и времени ISO 8601 с информацией о часовых поясах
Пример | Объяснение |
---|---|
2019-09-07T-15:50+00 | 15:30 7 сентября 2019 года в часовом поясе универсального времени |
2019-09-07T15:50+00Z | Аналогично, 15:30 7 сентября 2019 года в часовом поясе универсального времени с добавлением «Z» в обозначении |
2019-09-07T15:50-04:00 | 15:30 7 сентября 2019 года в часовом поясе Нью-Йорк (UTC с переходом на летнее время). |
Однако важно отметить, что допустимый диапазон лет в этом формате охватывает только годы с 1583 по 1999. Это связано с тем, что григорианский календарь был введен только в 1583 году. Хотя стандарт ISO 8601 можно применять ко времени и датам до 1583 года, это требует точной координации между сторонами, обменивающимися значениями, чтобы избежать ошибок.
Преимущества стандарта ISO 8601 по сравнению с другими распространенными вариантами
ISO 8601 определяет только числовые обозначения и не распространяется на даты и время, в которые включены слова. Он не предназначен для замены формулировок, зависящих от языка, таких как «1 февраля 1995 года». Но ISO 8601 следует применять для замены таких обозначений, как «2/5/95» и «9:30 утра».
Преимущества стандарта ISO8 8601 можно суммировать следующим образом:
- Легко читать и записывать с помощью программного обеспечения
- Легко сравнивать и сортировать с помощью простого сравнения строк
- Понятен независимо от национального языка
- Невозможно спутать с другими общепринятыми представлениями даты
- Соответствует стандартной 24-часовой системе времени, в которой большие единицы (часы) также располагаются перед малыми единицами (минуты и секунды).
- Строки, содержащие дату и время, легко сравнивать и сортировать (например, «2019-09-07 20:15:00»).
- Условные обозначения лаконичны и имеют постоянную длину, что упрощает ввод с клавиатуры и составление таблиц.
- Идентична китайской нотации даты, что означает, что самая большая культурная группа (>25%) в мире уже знакома с этой системой.
- Значения даты с порядком «год, месяц, день» также широко распространены, например, в Японии, Корее, Венгрии, Швеции, Финляндии, Дании и некоторых других странах.
- Четырехзначный формат года не приводит к каким-либо проблемам на рубеже веков
Преобразование дат
Формат, как правило, может быть преобразован в двух различных направлениях. С одной стороны, дата или значение времени могут быть преобразованы в стандарт ISO из национальной конвенции, а с другой — из формата ISO в национальный язык.
При преобразовании из даты ISO в «простую» читаемую форму временная метка ISO 8601 обычно выглядит следующим образом:
String dateString = "2019-09-26T07:58:30.996+0200"
Теперь эта строка структурирована в формате даты YYYY-MM-DD. Разделителем для времени является «T», а формат времени — hh:mm:ss плюс суффикс UTC .sssz. Таким образом, полный формат выглядит следующим образом: YYY-MM-DD «T» hh:mm:ss.SSSZ.
Следующее преобразование позволяет преобразовать дату ISO в типичный формат США, т.е. hh:mm, MM.DD.YYYY (час, минута — месяц, день, год).
public String getOurDate() {
DateFormat format = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ");
try {
Date unformatedDate = format.parse(date);
String formatedDate = new SimpleDateFormat("HH:mm dd.MM.yyyy").format(unformatedDate);
return formatedDate;
} catch (ParseException e){
System.out.println("Error")
}
return date;
}
Помимо ручных возможностей преобразования, в Интернете можно найти веб-сайты, которые автоматически преобразуют временные метки в нужный формат. Например: DenCode Converter. Просто введите дату в исходном формате, а затем выберите целевой формат для преобразования. Также можно выбрать часовой пояс.