在scala中从刻度到数据时间的时间转换

时间:2017-07-18 09:14:44

标签: scala

我正在尝试将时间刻度转换为scala中的日期。无法找到任何有用的方法。样本蜱' 636287933517148416L'代表' 2017-04-26T08:49:11.714Z'。

2 个答案:

答案 0 :(得分:1)

使用java 8中的时间:

import java.time._
val ticksSinceEpoch = 621355968000000000L
val ticksPerMilliseconds = 10000

LocalDateTime.ofInstant(Instant.ofEpochMilli((636287933517148416L - ticksSinceEpoch)/ticksPerMilliseconds), ZoneId.of("UTC"))

答案 1 :(得分:0)

我用以下代码解决了这个问题。希望这有助于其他可能面临同样问题的人。您可以将此转换为函数,其中ticks将成为它的参数,它将返回字符串,就像我的情况我想要一个字符串输出

val output = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'")
output.setTimeZone(TimeZone.getTimeZone("IST"))
val ticks=636287933517148416L
val TICKS_AT_EPOCH = 621355968000000000L;
val TICKS_PER_MILLISECOND = 10000;
println(output.format(new Date((ticks - TICKS_AT_EPOCH) / TICKS_PER_MILLISECOND)).toString())