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
}