From f268044e2a5b0827becfb83ecbbe16ce0d38ec68 Mon Sep 17 00:00:00 2001 From: Aleksandr Soloshenko Date: Tue, 7 May 2024 20:10:01 +0700 Subject: [PATCH] [local] fix timezone formatting for Android 6 and below --- .../modules/localserver/WebService.kt | 23 +++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/me/capcom/smsgateway/modules/localserver/WebService.kt b/app/src/main/java/me/capcom/smsgateway/modules/localserver/WebService.kt index c1f9eeb..4d74965 100644 --- a/app/src/main/java/me/capcom/smsgateway/modules/localserver/WebService.kt +++ b/app/src/main/java/me/capcom/smsgateway/modules/localserver/WebService.kt @@ -43,6 +43,7 @@ import me.capcom.smsgateway.modules.messages.data.SendRequest import me.capcom.smsgateway.modules.notifications.NotificationsService import org.koin.android.ext.android.inject import java.util.Date +import java.util.TimeZone import kotlin.concurrent.thread class WebService : Service() { @@ -76,10 +77,24 @@ class WebService : Service() { if (me.capcom.smsgateway.BuildConfig.DEBUG) { setPrettyPrinting() } - // ISO_8601 - this.setDateFormat( - "yyyy-MM-dd'T'HH:mm:ss.SSSXXX" - ) + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { + this.setDateFormat( + "yyyy-MM-dd'T'HH:mm:ss.SSSXXX" + ) + } else { + //get device timezone + val timeZone = TimeZone.getDefault() + this.setDateFormat( + "yyyy-MM-dd'T'HH:mm:ss.SSS" + when (timeZone.rawOffset) { + 0 -> "Z" + else -> "+" + (timeZone.rawOffset / 3600000).toString().padStart( + 2, + '0' + ) + ":" + ((timeZone.rawOffset % 3600000) / 60000).toString() + .padStart(2, '0') + } + ) + } } } install(StatusPages) {