2017-01-31 10 views
-9

私はこのエラーに驚いています: タイムスタンプオブジェクトをタイムスタンプオブジェクトに変換する方法を教えてください。 http://www.timestamp.fr/Java/Scala - 文字列を長文に変換する方法は?

val a = new Timestamp("1485783591".toDouble) 
a 
Out[157]: 
Name: Unknown Error 
Message: <console>:79: error: type mismatch; 
found : Double 
required: Long 
     val a = new Timestamp("1485783591".toDouble) 
             ^
StackTrace: 

編集

ここで現在のタイムスタンプをお探しですか? 私は値1485783591 = 30/1/2017午後02時39分51秒

を得ました。しかし、私のJavaプログラムがない:

val a = new Timestamp("1485783591".toLong) 
a 

出力:

=> 1970-01-18 04:43:03.591 

なぜ?

+1

ロングには小数点以下は含まれません。 – Carcigenicate

+1

次回はスクリーンショットを使わず、コードと例外をコピーして貼り付けてください。画像は検索可能ではなく、エラーを再現するのにも役立ちません。 –

+0

どのクラスにキャストすべきですか? DoubleはTimeStampによって受け入れられないようです。 –

答えて

1

java.sql.Timestamp(サブクラス:java.util.Date)は、Unixタイムスタンプが秒数をカウントする間にミリ秒を使用します。 Unixタイムスタンプを持っている場合は、1000を掛けて(Java DateからUnixのタイムスタンプを取得するために1000で割ります)必要があります。

2

ページが言うように1月1日午前0時1970年はちょうどdocumentationを見ているので、それはタイムスタンプがの数であると考えてミリ -secondsの数を期待new Timestampを示しています。したがって、1000を掛けてください。Timestampは、使用するタイプではありそうもありません.SQL固有です。代わりにjava.time.*タイプを検討してください。

関連する問題