Простой способ получить читаемую дату из длинной (временной отметки) в Scala - PullRequest
0 голосов
/ 20 ноября 2018

Мой вопрос прост

Если я сделаю:

var start = System.currentTimeMillis

Я получу:

start: Long = 1542717303659

Как мне сделать, чтобы строка смотрела на что-то читаемоедля человеческого глаза?:

Например: "20/11/2018 13:30:10"

Ответы [ 3 ]

0 голосов
/ 20 ноября 2018

Не задумывайтесь: ничего страшного, просто new Date(start).toString

0 голосов
/ 21 ноября 2018

Вы можете использовать библиотеку java.time и получить ее в удобочитаемом формате, как показано ниже, одной строкой.

scala>  java.time.LocalDateTime.ofEpochSecond(System.currentTimeMillis/1000,0,java.time.ZoneOffset.UTC)
res31: java.time.LocalDateTime = 2018-11-21T18:37:49

scala>

Я просто делю миллисекунды на 1000, так что мы получаем EpochSecond.

Чтобы вернуть его,

scala> java.time.LocalDateTime.parse("2018-11-21T18:41:29").toEpochSecond(java.time.ZoneOffset.UTC)
res40: Long = 1542825689

scala>
0 голосов
/ 20 ноября 2018

Вы можете использовать библиотеку java.time, например:

  val formatter = DateTimeFormatter.ofPattern("dd/MM/yyyy HH:mm:ss")
  formatter.format(LocalDateTime.now)

Если у вас есть только временная метка, это решение становится немного более сложным:

formatter.format(LocalDateTime.ofInstant(Instant.ofEpochMilli(System.currentTimeMillis()), ZoneId.of("UTC")))

Тогда я бы взялjava.text.SimpleDateFormat:

new SimpleDateFormat("dd/MM/yyyy HH:mm:ss").format(System.currentTimeMillis())

Чтобы вернуться к метке времени:

new SimpleDateFormat("dd/MM/yyyy HH:mm:ss").parse( "02/12/2012 12:23:44" ).getTime
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...