2

Mongo DB に updated_at というフィールドがあります

このようにDBに表示されます

updated_at : NumberLong("1355754242785")

この Updated_at フィールドは、この方法でデータベースに作成されます

長い今 = System.currentTimeMillis();

DB Record の1つから、値を次のように取得しました

updated_at" : NumberLong("1355754242785"), "volatility12" : "na", "vwap" : "0", "wk52hi" : "0", "wk52hidate" : "----"}

たとえば、その値が 1355754242785 であるとします。

これが更新されたときに 1355754242785 を変換することは可能ですか??

変換してみたところ

public class Aim {
    public static void main(String[] args) {
        DateFormat formatter = new SimpleDateFormat("dd/MM/yyyy hh:mm:ss.SSS");
        long now = 1355754242785; // Error here saying out of range 
        Calendar calendar = Calendar.getInstance();
        calendar.setTimeInMillis(now);
        System.out.println(now + " = " + formatter.format(calendar.getTime()));
    }
}
4

3 に答える 3

5

変化する

  long now = 1355754242785; // Error here saying out of range 

long now = 1355754242785L; 

これは割り当てのコンパイル エラーです。これは、問題が日付とは何の関係もないという手がかりを与えるはずです.Javaのリテラル数値は であると想定されているという事実だけでint、最大値は2^31-1. Lリテラルがlong.

于 2012-12-17T21:04:33.257 に答える
3

もちろん、Date(long)ミリ秒単位の時間をパラメーターとして受け取るコンストラクターを使用してください。次のようにします。

Date date = new Date(System.currentTimeMillis());

ちなみに、これは単にこれを書くのと同じです:

Date date = new Date();
于 2012-12-17T21:03:58.460 に答える
1
long now = 1355754242785L;
Date nowAsDate = new Date(now);
于 2012-12-17T21:03:46.353 に答える