Как создать время в определенном часовом поясе с помощью moment.js

«Я не хочу использовать триггер или любую другую вещь, кроме самого Hibernate, для генерации значения для моего свойства»

. В этом случае, как насчет создания реализации UserType, который генерирует требуемое значение и конфигурирование метаданных для использования этого UserType для сохранения свойства mySequenceVal?

24
задан DaniOcean 26 August 2013 в 16:08
поделиться

2 ответа

В большинстве случаев вы можете просто сделать это:

moment.tz("2013-08-26 16:55:00", "America/Los_Angeles")

Если вам требуется ввод, отличный от ISO8601, укажите строку формата в качестве второго параметра и часовой пояс в качестве третьего:

moment.tz("8/26/2013 4:55 pm", "M/D/YYYY h:mm a", "America/Los_Angeles")

И если вам нужно использовать режим «строгого разбора» момента, то он переходит к третьему параметру, а часовой пояс перемещается на четвертую позицию:

moment.tz("8/26/2013 4:55 pm", "M/D/YYYY h:mm a", true, "America/Los_Angeles")
27
ответ дан Matt Johnson 26 August 2013 в 16:08
поделиться

Если вы хотите рассчитать все в определенном часовом поясе, вы хотите установить часовой пояс по умолчанию, используя

A) moment.tz.setDefault("America/Los_Angeles");

Для моего варианта использования ( в проекте node.js) Я просто установил его сразу после запроса модулей момента, например, так:

let moment = require('moment');
require('moment-timezone');
moment.tz.setDefault("America/Los_Angeles");

Все последующие вызовы moment() будут создавать время в настройке «America / Los_Angeles», которая НЕ то же самое, что использовать:

B) moment.tz("2017-03-04 00:00", "America/Los_Angeles")

ИЛИ

C) moment("2017-03-04 00:00").tz("America/Los_Angeles")

оба из которых будут создавать объект момента в UTC время (если вы уже не изменили значение по умолчанию), а затем преобразовать его в часовой пояс Лос-Анджелеса.

Запуск B или C выше в консоли браузера приводит к:

_d: Fri Mar 03 2017 16:00:00 GMT-0800 (PST)
_i: "2017-3-4 00:00"

Уведомление _d показывает 3 марта 16:00; это связано с тем, что объект создается с 4 марта в 12:00 по времени UTC, а затем преобразуется в тихоокеанский часовой пояс, который отстает на 8 часов от предыдущего дня.

источник: http://momentjs.com/timezone/docs/#/using-timezones/default-timezone/

4
ответ дан timmcliu 26 August 2013 в 16:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: