«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Как создать даты в формате ISO 8601 со смещением часового пояса в JavaScript?

Как создать даты в формате ISO 8601 со смещением часового пояса в JavaScript?

Опубликовано 23 декабря 2024 г.
Просматривать:137

How to Generate ISO 8601 Format Dates with Timezone Offsets in JavaScript?

Форматирование дат ISO 8601 со смещением часового пояса в JavaScript

В JavaScript построение дат в формате ISO 8601 со смещением часового пояса может быть сложной задачей из-за потенциальные отрицательные смещения часовых поясов. В этой статье рассматривается эта проблема и предлагается решение.

Понимание формата

Формат ISO 8601 определяет даты следующим образом: ГГГГ-ММ-ДДTчч:мм:сс± хх:мм. Например, 2002-10-10T12:00:00-05:00 представляет полдень 10 октября 2002 г. по центральному летнему времени (на пять часов отстает от UTC).

Поиск местного времени и UTC. Offset

Чтобы построить строку ISO 8601, мы должны сначала получить локальный время с помощью new Date() и вычислите смещение UTC с помощью getTimezoneOffset(). Смещение получается в минутах, поэтому мы делим его на 60, чтобы получить количество часов.

Обработка отрицательных смещений часового пояса

Функция getTimezoneOffset() может возвращать отрицательное значение ценности. В таких случаях мы должны форматировать смещение по-другому. Например, смещение -120 минут должно отображаться как 02:00 (на два часа раньше UTC).

Вспомогательная функция для форматирования

Для упрощения процесса вспомогательную функцию toIsoString можно использовать для форматирования дат в формате ISO 8601 со смещением часового пояса:

function toIsoString(date) {
  var tzo = -date.getTimezoneOffset(), // Make the offset positive
      dif = tzo >= 0 ? ' ' : '-', // Determine the sign
      pad = function(num) { // Ensure two-digit representation
          return (num 

Эта функция принимает дату в качестве аргумента и форматирует ее в соответствии со спецификацией ISO 8601, включая смещение часового пояса.

Пример использования

Следующий код демонстрирует, как использовать функцию toIsoString:

var dt = new Date();
console.log(toIsoString(dt)); // Outputs the date in ISO 8601 format with timezone offset

Используя этот подход, вы можете легко форматировать даты в JavaScript в соответствии со стандартом ISO 8601, гарантируя, что они соответствуют правильному формату.

Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3