From 471120c7b1693f0e9b8c7da6a174e2e56fa39a24 Mon Sep 17 00:00:00 2001 From: Henning Hall Date: Sun, 3 Dec 2023 17:45:21 +0100 Subject: [PATCH] fix: timezone error handling (#719) --- .../com/henninghall/date_picker/State.java | 27 ++++++++++++------- 1 file changed, 17 insertions(+), 10 deletions(-) diff --git a/android/src/main/java/com/henninghall/date_picker/State.java b/android/src/main/java/com/henninghall/date_picker/State.java index 54ddfc64..b09b6c5c 100644 --- a/android/src/main/java/com/henninghall/date_picker/State.java +++ b/android/src/main/java/com/henninghall/date_picker/State.java @@ -1,5 +1,7 @@ package com.henninghall.date_picker; +import android.util.Log; + import com.facebook.react.bridge.Dynamic; import com.henninghall.date_picker.models.Is24HourSource; import com.henninghall.date_picker.models.Mode; @@ -103,16 +105,21 @@ public Calendar getMaximumDate() { } public TimeZone getTimeZone() { - String offsetString = timezoneOffsetInMinutesProp.getValue(); - if(offsetString == null || offsetString.equals("")) return TimeZone.getDefault(); - int offset = Integer.parseInt(offsetString); - int totalOffsetMinutes = Math.abs(offset); - char offsetDirection = offset < 0 ? '-' : '+'; - int offsetHours = (int) Math.floor(totalOffsetMinutes / 60f); - int offsetMinutes = totalOffsetMinutes - offsetHours * 60; - String timeZoneId = "GMT" + offsetDirection + offsetHours + ":" + Utils.toPaddedMinutes(offsetMinutes); - TimeZone zone = TimeZone.getTimeZone(timeZoneId); - return zone; + try{ + String offsetString = timezoneOffsetInMinutesProp.getValue(); + if(offsetString == null || offsetString.equals("")) return TimeZone.getDefault(); + int offset = Integer.parseInt(offsetString); + int totalOffsetMinutes = Math.abs(offset); + char offsetDirection = offset < 0 ? '-' : '+'; + int offsetHours = (int) Math.floor(totalOffsetMinutes / 60f); + int offsetMinutes = totalOffsetMinutes - offsetHours * 60; + String timeZoneId = "GMT" + offsetDirection + offsetHours + ":" + Utils.toPaddedMinutes(offsetMinutes); + TimeZone zone = TimeZone.getTimeZone(timeZoneId); + return zone; + } catch (Exception e){ + e.printStackTrace(); + return TimeZone.getDefault(); + } } public String getIsoDate() {