2017-02-13 39 views
1

本当に簡単な質問ですが、どこでも簡単な説明は見つかりません。Scalaの現在の時刻をミリ秒単位で変換する

val current = System.currentTimeMillis() 

や、2017-02-11T15:16:38.437Zなど日付時刻形式に結果を変換する:私はミリ秒単位で現在の時刻を取得したいです。 質問が不明な場合は、これはScala向けです。

+2

可能な重複http://stackoverflow.com/questions/625433/how-、これらのためにフォーマットされた文字列を取得したいです変換可能ミリ秒からx-min-x秒s-in-java) –

+0

両方の質問が同じ言語に関連していた場合は、重複しています。 – DarthBinks911

+2

Scalaにはカスタムの 'scala.time'ライブラリがありません。あなたは 'java.time'を使うことができます。私はあなたがそうでないものを見つけることはないと思う。 [nscala-time](https://github.com/nscala-time/nscala-time)のような外部依存関係をいつでも使用することができます。 –

答えて

5

うーん...あなたは、あなたが、今、日付時刻オブジェクトに

import java.time.{Instant, ZoneId, ZonedDateTime} 

val timeInMillis = System.currentTimeMillis() 
//timeInMillis: Long = 1486988060666 

val instant = Instant.ofEpochMilli(timeInMillis) 
//instant: java.time.Instant = 2017-02-13T12:14:20.666Z 

val zonedDateTimeUtc = ZonedDateTime.ofInstant(instant, ZoneId.of("UTC")) 
//zonedDateTimeUtc: java.time.ZonedDateTime = 2017-02-13T12:14:20.666Z[UTC] 

val zonedDateTimeIst = ZonedDateTime.ofInstant(instant, ZoneId.of("Asia/Calcutta")) 
//zonedDateTimeIst: java.time.ZonedDateTime = 2017-02-13T17:44:20.666+05:30[Asia/Calcutta] 

をそれらのエポックミリ秒に変換しますことをする必要が

まず、それを行うためのJava時間のAPIを使用することができます

val dateTimeFormatter1 = DateTimeFormatter.ISO_OFFSET_DATE_TIME 

val zonedDateTimeUtcString1 = dateTimeFormatter1.format(zonedDateTimeUtc) 
//zonedDateTimeUtcString1: String = 2017-02-13T12:24:19.248Z 

val zonedDateTimeIstString1 = dateTimeFormatter1.format(zonedDateTimeIst) 
//zonedDateTimeIstString1: String = 2017-02-13T17:54:19.248+05:30 

val dateTimeFormatter2 = DateTimeFormatter.ISO_ZONED_DATE_TIME 

val zonedDateTimeUtcString2 = dateTimeFormatter.format(zonedDateTimeUtc) 
//zonedDateTimeUtcString2: String = 2017-02-13T12:20:11.813Z[UTC] 

val zonedDateTimeIstString2 = dateTimeFormatter.format(zonedDateTimeIst) 
//zonedDateTimeIstString2: String = 2017-02-13T17:50:11.813+05:30[Asia/Calcutta] 
[ミリ秒に変換するために、どのようにJavaで「Xの分を、秒x」は?](の
関連する問題