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ê?

questionAnswers(3)

yourAnswerToTheQuestion