как я преобразовываю данные времени EST в местное время, используя момент. js / Дата в javascript - PullRequest
0 голосов
/ 19 марта 2020

var res = "19.03.2020 13:15:00"; // EST время

при преобразовании в местный часовой пояс

момент (момент (рез.дата, 'ММ / ДД / ГГГГ ЧЧ: мм: сс'). Ut c ( )). local (). format ("ММ ДД ГГГГ ЧЧ: мм: сс")

Я пробовал много вещей. Но я не знаю, как преобразовать время Est в местное время в javascript.

1 Ответ

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

Предположительно, EST - восточное стандартное время США, которое GMT ​​+ 5. В большинстве мест в этом часовом поясе также наблюдается летнее время, поэтому вам может потребоваться определить, какой набор правил использовать. Смещение должно передаваться вместе с оставшейся отметкой времени, чтобы удалить его как источник ошибки.

Смещения часового пояса обычно выражаются как время, добавляемое к UT C для получения местное время, хотя ECMAScript (и другие языки программирования) меняют его, т. е. время вычитать из UT C для получения локального.

Если смещение временной метки известно, то вы можете проанализировать строку как UT C, затем примените смещение, затем используйте простые методы для получения локальных значений на основе настроек хост-системы, например,

// Offset in minutes, +ve east
function parseWithOffset(s, offset) {
  let b = s.split(/\D/);
  let d = new Date(Date.UTC(b[2], b[0]-1, b[1], b[3], b[4], b[5]));
  d.setUTCMinutes(d.getUTCMinutes() - offset);
  return d;
}

let s = '03/19/2020 13:15:00'; // US EST
let d = parseWithOffset(s, -300);
console.log(d.toString());
...