From 0c11f4cea689615b2a6e1001e2b55c40c7c02c72 Mon Sep 17 00:00:00 2001 From: pennam Date: Thu, 17 Jul 2025 11:32:44 +0200 Subject: [PATCH 1/2] ensure unix timestamp is calculated from UTC time --- src/ArduinoCellular.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ArduinoCellular.cpp b/src/ArduinoCellular.cpp index a4f0d2b..8b510fb 100644 --- a/src/ArduinoCellular.cpp +++ b/src/ArduinoCellular.cpp @@ -8,7 +8,7 @@ unsigned long ArduinoCellular::getTime() { int year, month, day, hour, minute, second; float tz; - modem.getNetworkTime(&year, &month, &day, &hour, &minute, &second, &tz); + modem.getNetworkUTCTime(&year, &month, &day, &hour, &minute, &second, &tz); return Time(year, month, day, hour, minute, second).getUNIXTimestamp(); } From 3b31d7912f2c8e50abca4ca44627a682c3e91c0b Mon Sep 17 00:00:00 2001 From: pennam Date: Thu, 17 Jul 2025 11:50:52 +0200 Subject: [PATCH 2/2] getTime return UNIX epoch if not in sync with NTP --- src/ArduinoCellular.cpp | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/ArduinoCellular.cpp b/src/ArduinoCellular.cpp index 8b510fb..821d78e 100644 --- a/src/ArduinoCellular.cpp +++ b/src/ArduinoCellular.cpp @@ -6,9 +6,16 @@ #endif unsigned long ArduinoCellular::getTime() { - int year, month, day, hour, minute, second; + int year = 1970; + int month = 1; + int day = 1; + int hour = 0; + int minute = 0; + int second = 0; float tz; - modem.getNetworkUTCTime(&year, &month, &day, &hour, &minute, &second, &tz); + if (modem.NTPServerSync() == 0) { + modem.getNetworkUTCTime(&year, &month, &day, &hour, &minute, &second, &tz); + } return Time(year, month, day, hour, minute, second).getUNIXTimestamp(); }