From 17cb0e550a46ff8c69d8b34654a2dcbbd1a28af0 Mon Sep 17 00:00:00 2001 From: Guntis Smaukstelis Date: Mon, 3 Mar 2025 22:32:39 +0200 Subject: [PATCH] Recover dateTime parsing with hardcded date --- src/main/scala/parse/grib/GribParser.scala | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/main/scala/parse/grib/GribParser.scala b/src/main/scala/parse/grib/GribParser.scala index 99cd827..700e371 100644 --- a/src/main/scala/parse/grib/GribParser.scala +++ b/src/main/scala/parse/grib/GribParser.scala @@ -7,7 +7,7 @@ import java.nio.ByteBuffer import java.time.format.DateTimeFormatter import java.time.temporal.ChronoUnit import java.time.{ZoneOffset, ZonedDateTime} -import scala.util.Try +import scala.util.{Random, Try} object GribParser { def parseFile(path: Path): IO[List[Grib]] = { @@ -86,9 +86,10 @@ object GribParser { second = bytes(18) referenceTime = Try(ZonedDateTime.of( year, month, day, - hour, minute, second, 0, // last 0 is nanos + hour, minute, second, 0, ZoneOffset.UTC // This is what 'Z' represents - UTC/Zero offset - )).recover { case _ => extractDateTime(path) }.get + )).recoverWith { case _ => Try(extractDateTime(path)) + }.getOrElse(ZonedDateTime.of(2000, 1, 1, Random.nextInt(24), 0, 0, 0, ZoneOffset.UTC)) } yield (referenceTime, length) }