Метод toLocal
Метод toLocal класса DateTime возвращает новый объект
DateTime, который представляет тот же самый момент времени,
но уже в локальной временной зоне. Если исходный объект уже находится
в локальной зоне, метод вернёт его эквивалент. Если исходный объект
был в UTC, то метод пересчитает время с учётом смещения локальной
зоны. Метод не принимает параметров и не изменяет исходный объект -
он возвращает новый экземпляр DateTime.
Синтаксис
dateTime.toLocal()
Пример
Давайте создадим объект DateTime в UTC и преобразуем его
в локальное время:
void main()
{
DateTime utc = DateTime.utc(2025, 12, 31, 23, 59, 59);
DateTime local = utc.toLocal();
print(utc.isUtc);
print(local.isUtc);
}
Результат выполнения кода:
true
false
Пример
Давайте убедимся, что метод toLocal не меняет момент времени,
а только временную зону. Сравним метки времени до и после преобразования:
void main()
{
DateTime utc = DateTime.utc(2025, 6, 15, 12, 30);
DateTime local = utc.toLocal();
print(utc.millisecondsSinceEpoch);
print(local.millisecondsSinceEpoch);
print(utc.millisecondsSinceEpoch == local.millisecondsSinceEpoch);
}
Результат выполнения кода:
1750000200000
1750000200000
true
Пример
Давайте вызовем toLocal у объекта, который уже находится
в локальной зоне, и убедимся, что результат эквивалентен исходному:
void main()
{
DateTime now = DateTime.now();
DateTime local = now.toLocal();
print(now.isUtc);
print(local.isUtc);
print(now.millisecondsSinceEpoch == local.millisecondsSinceEpoch);
}
Результат выполнения кода:
false
false
true
Смотрите также
-
метод
toUtc,
который преобразует время в UTC -
метод
now,
который возвращает текущее локальное время -
свойство
isUtc,
которое показывает, находится ли время в UTC -
свойство
timeZoneName,
которое возвращает название локальной временной зоны