Можете ли вы попробовать это, основываясь на том, что вы сказали, это разбор UTC времени, так что у меня есть это в качестве образца.

у, чтобы UNIX Epoch Time (Posix Time, Unix Time) строки в некоторыхpatternстрока в обычном формате (поэтому UTC). Пожалуйста, используйте Java 8, а не Joda или старую Java.

(За миллисекунды смотритеКак преобразовать строку даты и времени в длинную (UNIX Epoch Time) миллисекунды в Java 8 (Scala))

До сих пор у меня есть ниже, но я ненавижу это по ряду причин:

Это слишком многословно для того, что чаще всего делают с датами (конвертировать в UNIX Epoch Time). 7 вызовов методов для того, что должно быть 1.Он должен указывать UTC, но, конечно, UTC - это просто значение по умолчанию, почему я должен быть здесь явно указан?Имеет строковый литерал"UTC"У него есть магический номерZoneOffset.ofHours(0)

Мои лучшие пока:

def dateTimeStringToEpoch(s: String, pattern: String): Long = 
    LocalDateTime.parse(s, DateTimeFormatter.ofPattern(pattern))
      .atZone(ZoneId.ofOffset("UTC", ZoneOffset.ofHours(0)))
      .toInstant().getEpochSeconds

Кроме того, бонусный вопрос, это эффективно? Есть ли накладные расходы на созданиеDateTimeFormatter черезDateTimeFormatter.ofPattern(pattern)? Если так, то почему?

Ответы на вопрос(3)

Ваш ответ на вопрос