def now: DateTime = apply()

in http-core/src/main/scala/org/apache/pekko/http/scaladsl/model/DateTime.scala [260:293]


  def now: DateTime = apply(System.currentTimeMillis)

  /**
   * Creates a new DateTime instance from the given String,
   * if it adheres to the format `yyyy-mm-ddThh:mm:ss[.SSSZ]`.
   * Note that this implementation discards milliseconds (i.e. rounds down to full seconds).
   */
  def fromIsoDateTimeString(string: String): Option[DateTime] = {
    def c(ix: Int) = string.charAt(ix)
    def isDigit(c: Char) = '0' <= c && c <= '9'
    def i(ix: Int) = {
      val x = c(ix)
      require(isDigit(x))
      x - '0'
    }
    def check(len: Int): Boolean =
      len match {
        case 19 => c(4) == '-' && c(7) == '-' && c(10) == 'T' && c(13) == ':' && c(16) == ':'
        case 24 => check(19) && c(19) == '.' && isDigit(c(20)) && isDigit(c(21)) && isDigit(c(22)) && c(23) == 'Z'
        case _  => false
      }
    def mul10(i: Int) = (i << 3) + (i << 1)
    if (check(string.length)) {
      try {
        val year = i(0) * 1000 + i(1) * 100 + mul10(i(2)) + i(3)
        val month = mul10(i(5)) + i(6)
        val day = mul10(i(8)) + i(9)
        val hour = mul10(i(11)) + i(12)
        val min = mul10(i(14)) + i(15)
        val sec = mul10(i(17)) + i(18)
        Some(DateTime(year, month, day, hour, min, sec))
      } catch { case _: IllegalArgumentException => None }
    } else None
  }