javascript: как отобразить форматированную метку времени в формате UT C timezome - PullRequest
1 голос
/ 06 марта 2020

В настоящее время я работаю в GMT + 0530, часовой пояс

new Date()
Fri Mar 06 2020 11:29:12 GMT+0530 (India Standard Time)

Теперь я пытаюсь отформатировать его, как мне нужно

var today = new Date();
var date = today.toLocaleString('default', { weekday: 'short' })+' '+today.toLocaleString('default', { month: 'short' })+'-'+today.getDate();
var time = today.getHours() + ":" + today.getMinutes() + ":" + today.getSeconds();
var dateTime = date+' '+time+' '+today.getFullYear();

Время сохраняется следующим образом

Fri Mar-6 11:22:4 2020

Теперь, как получить время UT C в том же формате

Ответы [ 3 ]

2 голосов
/ 06 марта 2020

Вы можете получить смещение между вашим часовым поясом и UT C, затем создать new Date с добавленным смещением и отформатировать его, как вы делали ранее.

var localToday = new Date();
var offset = localToday.getTimezoneOffset();
var today = new Date(localToday.getTime() + (offset * 60 * 1000));
var date = today.toLocaleString('default', { weekday: 'short' })+' '+today.toLocaleString('default', { month: 'short' })+'-'+today.getDate();
var time = today.getHours() + ":" + today.getMinutes() + ":" + today.getSeconds();
var dateTime = date+' '+time+' '+today.getFullYear();
console.log(dateTime);
1 голос
/ 06 марта 2020

Поскольку вы используете toLocaleString с опциями, просто укажите часовой пояс как UT C, а также используйте методы UT C для дня и времени, например,

var today = new Date();
var date = today.toLocaleString('default', {weekday: 'short', timeZone:'UTC'}) + ' ' +
           today.toLocaleString('default', {month: 'short', timeZone:'UTC'}) + '-' +
           today.toLocaleString('default', {day: '2-digit', timeZone:'UTC'});
// var time = today.getUTCHours() + ":" + today.getUTCMinutes() + ":" + today.getUTCSeconds();
var time = today.toLocaleString('default',{hour:'2-digit',minute:'2-digit', second:'2-digit', hour12:false, timeZone:'UTC'});
var year = today.toLocaleString('default',{year:'numeric', timeZone:'UTC'});
var dateTime = date + ' ' + time + ' ' + year;

console.log(dateTime);
0 голосов
/ 06 марта 2020

Попробуйте использовать момент- js. Он имеет широкий спектр флагов для форматирования, как вы хотите.

Рабочая песочница: https://codesandbox.io/s/xenodochial-cdn-yp5mb

const moment = require("moment");
console.log(moment.utc().format('ddd MMM-D YYYY HH:mm:ss'));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...