Прежде всего - используйте пакет java.time
, основанный на Joda Time (используйте последний, если вы используете очень старую JVM, у которой не было java.time
). Ваш код выглядит как java.sql
функции времени - избегайте их.
Из вашего кода кажется, что вы хотите взять эпоху, вернуть форматированную строку и подтвердить часовой пояс одним способом.
Epoch to LocalDateTime:
java.time.LocalDateTime.ofEpochSecond(1587416590, 0, java.time.ZoneOffset.UTC)
это: секунды эпохи, наносекунды и смещение времени.
Для преобразования LocalDateTime в строку вам необходим формат, например:
localDateTime.format(java.time.format.DateTimeFormatter.ISO_DATE_TIME)
, если у вас есть Целевой формат определяется как строка, которую вы можете создать в формате:
val formatter = java.time.format.DateTimeFormatter.ofPattern(format)
Всего:
java.time.LocalDateTime.ofEpochSecond(
epochSeconds,
nanosIfYouHaveThem,
offset
).format(java.time.format.DateTimeFormatter.ofPattern(targetFormat))
Если вы хотите сделать обратное? Вы используете:
java.time.LocalDateTime.parse(
timestamp,
format
).toEpochSecond(offset)