From bd43546141ab1a32c5c3bbafe0bf4d666c8f4339 Mon Sep 17 00:00:00 2001 From: Sad Ellie Date: Thu, 26 Oct 2023 17:33:24 +0300 Subject: [PATCH] Fix daylight offsets --- .../java/com/sadellie/unitto/data/common/TimeZoneUtils.kt | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/data/common/src/main/java/com/sadellie/unitto/data/common/TimeZoneUtils.kt b/data/common/src/main/java/com/sadellie/unitto/data/common/TimeZoneUtils.kt index 5a42ccf6..909e56f7 100644 --- a/data/common/src/main/java/com/sadellie/unitto/data/common/TimeZoneUtils.kt +++ b/data/common/src/main/java/com/sadellie/unitto/data/common/TimeZoneUtils.kt @@ -25,19 +25,21 @@ import android.icu.util.ULocale import android.os.Build import androidx.annotation.RequiresApi import java.time.ZonedDateTime +import java.util.Date @RequiresApi(Build.VERSION_CODES.N) fun TimeZone.offset(currentTime: ZonedDateTime): ZonedDateTime { val offsetSeconds = currentTime.offset.totalSeconds.toLong() val currentTimeWithoutOffset = currentTime.minusSeconds(offsetSeconds) + val dstOffset: Long = if (inDaylightTime(Date.from(currentTime.toInstant()))) (dstSavings / 1000L) else 0L - return currentTimeWithoutOffset.plusSeconds(this.rawOffset / 1000L) + return currentTimeWithoutOffset.plusSeconds(this.rawOffset / 1000L).plusSeconds(dstOffset) } @RequiresApi(Build.VERSION_CODES.N) fun TimeZone.regionName( timeZoneNames: TimeZoneNames, - localeDisplayNames: LocaleDisplayNames + localeDisplayNames: LocaleDisplayNames, ): String { val location = timeZoneNames.getExemplarLocationName(this.id) ?: return fallbackRegion val region = localeDisplayNames.regionDisplayName(TimeZone.getRegion(id)) ?: return fallbackRegion