From 90f582b9a7b9cd4737fb62c832c66c44fd07d64a Mon Sep 17 00:00:00 2001 From: Chase Naples Date: Sun, 23 Nov 2025 20:23:01 -0500 Subject: [PATCH] Fix Allegro OneBox tracking showing incorrect time The API returns UTC timestamps but they were being parsed as local time using LocalDateTime.parse(). This caused times to be displayed incorrectly for users not in the UTC timezone. Fixed by using Instant.parse() to properly interpret the UTC timestamp, then converting to local time using LocalDateTime.ofInstant() with the system's default timezone. Fixes #187 --- .../parceltracker/api/AllegroOneBoxDeliveryService.kt | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/dev/itsvic/parceltracker/api/AllegroOneBoxDeliveryService.kt b/app/src/main/java/dev/itsvic/parceltracker/api/AllegroOneBoxDeliveryService.kt index d212b63..7473cf3 100644 --- a/app/src/main/java/dev/itsvic/parceltracker/api/AllegroOneBoxDeliveryService.kt +++ b/app/src/main/java/dev/itsvic/parceltracker/api/AllegroOneBoxDeliveryService.kt @@ -3,8 +3,9 @@ package dev.itsvic.parceltracker.api import android.os.LocaleList import com.squareup.moshi.JsonClass import dev.itsvic.parceltracker.R +import java.time.Instant import java.time.LocalDateTime -import java.time.format.DateTimeFormatter +import java.util.TimeZone import retrofit2.Retrofit import retrofit2.http.GET import retrofit2.http.Header @@ -109,7 +110,8 @@ object AllegroOneBoxDeliveryService : DeliveryService { return events.map { item -> ParcelHistoryItem( item.description, - LocalDateTime.parse(item.eventTimestamp, DateTimeFormatter.ISO_DATE_TIME), + LocalDateTime.ofInstant( + Instant.parse(item.eventTimestamp), TimeZone.getDefault().toZoneId()), "" // the API doesn't provide us any locations :( ) }