diff --git a/src/main/scala/fetchDMI/FetchService.scala b/src/main/scala/fetchDMI/FetchService.scala index 70e223d..fe4eb95 100644 --- a/src/main/scala/fetchDMI/FetchService.scala +++ b/src/main/scala/fetchDMI/FetchService.scala @@ -78,5 +78,4 @@ class FetchService(log: Logger[IO]) { } yield fileNameStr } } - } \ No newline at end of file diff --git a/src/main/scala/fetchDMI/FileName.scala b/src/main/scala/fetchDMI/FileName.scala index 9a80d43..9629f8b 100644 --- a/src/main/scala/fetchDMI/FileName.scala +++ b/src/main/scala/fetchDMI/FileName.scala @@ -29,7 +29,7 @@ object FileName { .withNano(0) } - // TODO make default count to 62 or 60 + // TODO make default count to 61 def generateTimeList(initialTime: ZonedDateTime, interval: Int = 1, count: Int = 5): List[ZonedDateTime] = { (0 until count).map(id => initialTime.plusHours(id * interval)).toList } diff --git a/src/main/scala/grib/GribParser.scala b/src/main/scala/grib/GribParser.scala index 9f3e062..cbbd945 100644 --- a/src/main/scala/grib/GribParser.scala +++ b/src/main/scala/grib/GribParser.scala @@ -4,6 +4,7 @@ import cats.effect._ import fs2.io.file.{Files, Path} import java.nio.ByteBuffer +import java.time.format.DateTimeFormatter import java.time.temporal.ChronoUnit import java.time.{ZoneOffset, ZonedDateTime} @@ -116,7 +117,7 @@ object GribParser { meteoParam = MeteoParam(discipline, category, product, subtype, levelType, levelValue) forecastTime = if (bytes(8) == 1) { val leadTime = ByteBuffer.wrap(bytes.slice(20, 22)).getShort - referenceTime.toInstant.plus(leadTime, ChronoUnit.HOURS) + referenceTime.plus(leadTime, ChronoUnit.HOURS) } else { val year = ByteBuffer.wrap(bytes.slice(37, 39)).getShort val month = bytes(39) @@ -128,9 +129,9 @@ object GribParser { year, month, day, hour, minute, second, 0, // last 0 is nanos ZoneOffset.UTC // This is what 'Z' represents - UTC/Zero offset - ).toInstant + ) } - time = GribTime(referenceTime.toString, forecastTime.toString) + time = GribTime(referenceTime.format(formatter), forecastTime.format(formatter)) } yield (meteoParam, time, length) } @@ -165,4 +166,5 @@ object GribParser { .compile .to(Array) } + private val formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HHmmX") } \ No newline at end of file