Запись на курсы по HTML, CSS, JavaScript, PHP, Python, фреймворкам и CMS,
а также: помощь в поиске работы и заказов, стажировка на реальных проектах→
830 of 1310 menu
Вступайте в телеграмм-канал сайта code.mu: новинки, статьи, интервью, задачи, бесплатные курсы и тренинги. Жми для вступления:)

Функция withZoneSameLocal

Функция withZoneSameLocal класса ZonedDateTime создает новый объект ZonedDateTime с указанным часовым поясом, сохраняя локальные дату и время без изменений. В первый параметр мы передаем объект ZoneId, представляющий целевой часовой пояс.

Импорт

import java.time.ZonedDateTime import java.time.ZoneId

Синтаксис

fun withZoneSameLocal(zone: ZoneId): ZonedDateTime

Пример

Изменим часовой пояс с "Europe/Moscow" на "America/New_York", сохранив локальное время:

val original = ZonedDateTime.parse("2025-07-15T14:30:00+03:00[Europe/Moscow]") val newYorkTime = original.withZoneSameLocal(ZoneId.of("America/New_York")) println("Original: $original") println("New York: $newYorkTime")

Результат выполнения кода:

String "Original: 2025-07-15T14:30+03:00[Europe/Moscow]" String "New York: 2025-07-15T14:30-04:00[America/New_York]"

Пример

Сравним работу withZoneSameLocal и withZoneSameInstant:

val moscowTime = ZonedDateTime.parse("2025-12-31T20:00:00+03:00[Europe/Moscow]") val sameLocal = moscowTime.withZoneSameLocal(ZoneId.of("UTC")) val sameInstant = moscowTime.withZoneSameInstant(ZoneId.of("UTC")) println("Same local: $sameLocal") println("Same instant: $sameInstant")

Результат выполнения кода:

String "Same local: 2025-12-31T20:00Z[UTC]" String "Same instant: 2025-12-31T17:00Z[UTC]"

Пример

Использование системного часового пояса по умолчанию:

val tokyoTime = ZonedDateTime.parse("2025-03-20T09:15:00+09:00[Asia/Tokyo]") val systemZoneTime = tokyoTime.withZoneSameLocal(ZoneId.systemDefault()) println("Tokyo time: $tokyoTime") println("System zone: $systemZoneTime")

Результат выполнения кода:

String "Tokyo time: 2025-03-20T09:15+09:00[Asia/Tokyo]" String "System zone: 2025-03-20T09:15+03:00[Europe/Moscow]"

Смотрите также

  • функцию withZoneSameInstant класса ZonedDateTime,
    которая изменяет часовой пояс с сохранением момента времени
  • функцию getZone класса ZonedDateTime,
    которая возвращает текущий часовой пояс
  • класс ZoneId,
    который представляет идентификатор часового пояса
  • функцию toLocalDateTime класса ZonedDateTime,
    которая возвращает локальную дату и время