Моменты: Как преобразовать дату / время одного часового пояса в дату / время UTC - PullRequest
3 голосов
/ 10 апреля 2019

У меня есть дата / время с часовым поясом и я хочу преобразовать их в UTC

const date = '2019-04-10T20:30:00Z';
const zone = 'Asia/Kuala_Lumpur';
const utcDate = moment(date).tz(zone).utc().format();
console.log('UTC Date : ', utcDate);

моя переменная даты находится в стандартном формате для UTC? Как привести этот часовой пояс в другой часовой пояс?

Ответы [ 3 ]

2 голосов
/ 10 апреля 2019

Часовой пояс UTC обозначается суффиксом «Z», поэтому вам нужно удалить "Z" и использовать moment.tz(..., String) вместо moment().tz(String), поскольку первый создает момент с часовым поясом, а второй используется для изменениячасовой пояс на существующий момент:

const date = '2019-04-10T20:30:00';
const zone = 'Asia/Kuala_Lumpur';
const utcDate = moment.tz(date, zone).utc().format();
console.log('UTC Date : ', utcDate);
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.24.0/moment.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment-timezone/0.5.23/moment-timezone-with-data.min.js"></script>
0 голосов
/ 10 апреля 2019

Вы можете использовать moment.js документацию:

moment().format('MMMM Do YYYY, h:mm:ss a'); // April 10th 2019, 3:29:36 pm
moment().format('dddd'); // Wednesday
moment().format("MMM Do YY"); // Apr 10th 19
moment().format('YYYY [escaped] YYYY'); // 2019 escaped 2019
moment().format();
0 голосов
/ 10 апреля 2019

Вы можете сделать это, как показано ниже:

  // your inputs
    var date  = '2019-04-10T20:30:00Z';
    var desiredFormate   = "MM/DD/YYYY h:mm:ss A";  // must match the input
    var zone  = 'Asia/Kuala_Lumpur';

    // construct a moment object
    var m = moment.tz(date , desiredFormate, zone);
    // convert it to utc
    m.utc();

    // format it for output
    var s = m.format(fmt)  // result: 2017-08-31T08:45:00+06:00
...