Можете ли вы попробовать это, основываясь на том, что вы сказали, это разбор 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)
? Если так, то почему?