2

我在 Mongo DB 中有一个名为 updated_at 的字段

它将以这种方式在数据库中查找

updated_at : NumberLong("1355754242785")

这个 Updated_at 文件是以这种方式在数据库中创建的

长现在 = System.currentTimeMillis();

从其中一个 DB Record 中,我将一个值设为

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后缀以告诉 Java 该文字将被解释为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 回答