Как установить часовой пояс по умолчанию в node.js?

Как установить часовой пояс по умолчанию в node.js?

В соответствии с этим streamом группы google вы можете установить переменную окружения TZ перед вызовом любых функций даты. Просто протестируйте его, и он работает.

> process.env.TZ = 'Europe/Amsterdam' 'Europe/Amsterdam' > d = new Date() Sat, 24 Mar 2012 05:50:39 GMT > d.toLocaleTimeString() '06:50:39' > ""+d 'Sat Mar 24 2012 06:50:39 GMT+0100 (CET)' 

Вы не можете изменить часовой пояс позже, так как к тому времени Node уже прочитал переменную окружения.

Другой подход, который, по-видимому, работал для меня, по крайней мере, в среде Linux, – это запустить приложение Node.js следующим образом:

 env TZ='Europe/Amsterdam' node server.js 

Это должно, по крайней мере, гарантировать, что часовой пояс правильно установлен уже с самого начала.

К сожалению, настройка process.env.TZ работает не очень хорошо – в основном это неопределенно, когда изменение будет эффективным).

Поэтому установка часового пояса системы перед запуском узла – это ваш единственный правильный вариант.

Однако, если вы не можете этого сделать, должно быть возможно использовать время узла в качестве обходного пути: получить время в локальном или UTC-времени и преобразовать их в требуемый часовой пояс. См. Как использовать смещение часового пояса в Nodejs? для деталей.

Решение env TZ='Europe/Amsterdam' node server.js из @uhef работает в тех случаях, когда ваше приложение не работает с разветвленным процессом, но когда вы работаете с разветвленным процессом, особенно когда вы запускаете приложение со встроенным инструментом как gulp , команда gulp будет принимать значения env, но процесс, созданный gulp not (ваше приложение).

Чтобы решить эту проблему, вам нужно:

 $ export TZ="Europe/Amsterdam"; gulp myTask 

Это установит переменную окружения TZ для всего процесса, запускаемого в консоли, на которой вы работаете, включил весь процесс подследований, выполняемый после команды gulp в той же консоли, без необходимости выполнять их с префиксом export TZ="Europe/Amsterdam"; еще раз.

Вы можете взять момент часовой пояс . Он позволяет вам установить ваше местоположение, а также заботиться о летнее время.

Вот 100% рабочий пример для получения пользовательского часового пояса Date Time в NodeJs без использования каких-либо внешних модhive

  var nDate = new Date().toLocaleString('en-US', { timeZone: 'Asia/Calcutta' }); 

Вот ответ для тех, кто развертывает приложение Node.js на Amazon AWS Elastic Beanstalk . Я не видел этого документально нигде:

В разделе Configuration -> Software -> Environment Properties просто установите пару значений ключа TZ и ваш часовой пояс, например America/Los Angeles , и Apply the change.

Вы можете проверить эффект, выведя new Date().toString() в приложении Node и обратив внимание на суффикс часового пояса.

Установите часовой пояс сервера и используйте синхронизацию NTP. Вот одно из лучших решений для изменения времени сервера.

Чтобы перечислить часовые пояса

 timedatectl list-timezones 

Чтобы установить часовой пояс

 sudo timedatectl set-timezone America/New_York 

Проверить часовой пояс

 timedatectl 

Я знаю, что эта ветка очень старая, но я думаю, что это поможет любому, кто приземлился здесь из Google, как я.

В GAE Flex (NodeJs) вы можете установить переменную окружения TZ (ту, которая управляет всеми часовыми поясами дат в приложении) в файле app.yaml, я оставляю здесь пример:

app.yaml

 # [START env] env_variables: # Timezone TZ: America/Argentina/Buenos_Aires 
  • Всегда ли полезно хранить время в UTC или это тот случай, когда лучше хранить в местное время?
  • Могу ли я получить часовой пояс браузера в ASP.NET или мне нужно полагаться на операции JS для извлечения информации?
  • Как преобразовать время в часовой пояс устройства iPhone?
  • Как обрабатывать календарные часовые пояса с помощью Java?
  • Java: Как вы конвертируете временную метку UTC в локальное время?
  • Как конвертировать дату с одного часового пояса в другой часовой пояс
  • Сопоставление почтового индекса США с часовым поясом
  • Как получить текущую дату и время вашего часового пояса в Java?
  • Разница между UTC и стандартным временем GMT в .NET.
  • Как конвертировать datetime в timestamp с помощью C # /. NET (игнорируя текущий часовой пояс)
  • Преобразование между локальными временами и GMT / UTC в C / C ++
  • Давайте будем гением компьютера.