Angular 6 Typescript new Date создается в UTC, но мне нужно в моем местном часовом поясе - PullRequest
0 голосов
/ 20 декабря 2018

в моем файле HomeComponent.ts (не в шаблоне html).Я создаю новую дату и показываю ее в консоли, например:

var fecha = new Date();
console.log(fecha);

время в моей стране сейчас 16:09 (utc -3), но на выходе консоли отображается дата в utc:

Date 2018-12-20T19:09:32.910Z   // the time is 19:09

поэтому мне нужно разбить лагерь и выполнить некоторые операции с «этой новой датой» и другими датами, сохраненными в БД, поэтому мне нужно, чтобы новая Дата создавалась в моем местном часовом поясе.Как я могу создать новую дату в моем местном часовом поясе?Это кажется очень простым, но я пока не нашел решения.Спасибо заранее

Ответы [ 2 ]

0 голосов
/ 20 декабря 2018

Как я могу создать новую дату в своем местном часовом поясе?

Даты не имеют часового пояса, они просто смещены относительно 1970-01-01T00: 00: 00Z( значение времени ), поэтому фактически всегда UTC.Они представляют определенный момент времени и могут быть использованы для генерации строки, представляющей эквивалентную дату и время в любом часовом поясе.

Локальное смещение исходит от хост-системы, оно используется (при необходимости) при создании датыи при работе с локальными значениями даты и времени.Существуют эквивалентные методы UTC для выполнения операций, которые не учитывают местный часовой пояс.

Метод по умолчанию toString сгенерирует временную метку для часового пояса хоста, toISOString используйте UTC, toLocaleString можно использовать для генерации метки времени для любого часового пояса.Все они будут представлять одну и ту же дату и время в формате UTC, только в разных часовых поясах.

При сравнении дат сравнивается значение времени по Гринвичу , которое сравнивается, поскольку обеспечивает общий коэффициент для всех дат.

0 голосов
/ 20 декабря 2018

время в моей стране сейчас 16:09 (utc -3), но на выходе консоли отображается дата в utc

A Date или DateTime - это структура, это неесть формат.Если вы хотите отобразить форматированную строку даты с использованием часового пояса браузера, позвоните toLocaleString.

var fecha = new Date();
console.log("As ISO8601 in utc:", fecha);
console.log("As local:", fecha.toLocaleString());
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...