All Downloads are FREE. Search and download functionalities are using the official Maven repository.

jp.ne.opt.chronoscala.ZonedDateTimeForwarder.scala Maven / Gradle / Ivy

The newest version!
package jp.ne.opt.chronoscala

import java.time.{LocalDateTime, Clock, LocalDate, ZoneId, ZonedDateTime}
import java.time.format.{DateTimeFormatter, DateTimeParseException}

import scala.util.Try

trait ZonedDateTimeForwarder {

  def now(): ZonedDateTime = ZonedDateTime.now(ClockProvider.clock)

  def now(clock: Clock): ZonedDateTime = ZonedDateTime.now(clock)

  def now(zoneId: ZoneId): ZonedDateTime = ZonedDateTime.now(ClockProvider.clock.withZone(zoneId))

  def parse(str: String): ZonedDateTime = Try {
    ZonedDateTime.parse(str)
  }.recover {
    case e: DateTimeParseException => LocalDateTime.parse(str).atZone(ZoneId.systemDefault)
  }.recover {
    case e: DateTimeParseException => LocalDate.parse(str).atStartOfDay(ZoneId.systemDefault)
  }.get

  def parse(str: String, formatter: DateTimeFormatter): ZonedDateTime = ZonedDateTime.parse(str, formatter)

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy