Como converter uma string de data e hora em longa (UNIX Epoch Time) no Java 8 (Scala)
Quero o Horário da Época do UNIX (Horário do Posix, Horário do Unix) de uma string em algunspattern
, a sequência está no formato normal (então UTC). Por favor, use Java 8, não Joda ou Java antigo.
(Por milissegundos, consulteComo converter uma sequência de data e hora em longos (UNIX Epoch Time) Milissegundos em Java 8 (Scala))
Até agora eu tenho o abaixo, mas eu odeio isso por uma série de razões:
É muito detalhado para o que é mais comum em datas (converter para UNIX Epoch Time). O método 7 exige o que deve ser 1.Tem que especificar o UTC, mas certamente o UTC é apenas um padrão, por que preciso ser explícito aquTem uma string literal"UTC"
Tem um número mágicoZoneOffset.ofHours(0)
Meu melhor até agora:
def dateTimeStringToEpoch(s: String, pattern: String): Long =
LocalDateTime.parse(s, DateTimeFormatter.ofPattern(pattern))
.atZone(ZoneId.ofOffset("UTC", ZoneOffset.ofHours(0)))
.toInstant().getEpochSeconds
Além disso, pergunta bônus, é eficiente? Existe alguma sobrecarga para criar oDateTimeFormatter
através daDateTimeFormatter.ofPattern(pattern)
? Se sim, por quê?