Java 是否可以将System.currentTimeinMillis转换为日期

Java 是否可以将System.currentTimeinMillis转换为日期,java,Java,我在Mongo DB中有一个名为updated_的字段 它将以这种方式显示在DB中 更新地址:No.long(“1355754242785”) 此更新的_at字段是以这种方式在数据库中创建的 long now=System.currentTimeMillis() 从一个DB记录中,我取了一个值作为 updated_at" : NumberLong("1355754242785"), "volatility12" : "na", "vwap" : "0", "wk52hi" : "0", "wk5

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

它将以这种方式显示在DB中

更新地址:No.long(“1355754242785”)

此更新的_at字段是以这种方式在数据库中创建的

long now=System.currentTimeMillis()

从一个DB记录中,我取了一个值作为

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()));
    }
}
当然,只需使用构造函数,它接收以毫秒为单位的时间作为参数。这样做:

Date date = new Date(System.currentTimeMillis());
顺便说一下,这相当于简单地写下:

Date date = new Date();
改变

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


对于赋值,这是一个编译错误;这应该给你一个线索,问题与日期无关,只是Java中的一个文字数字被假定为
int
,其最大值为
2^31-1
。您必须添加
L
后缀,以告诉Java文本将被解释为
long

尝试
long now=1355754242785L,结尾是L,告诉它它很长。
  long now = 1355754242785; // Error here saying out of range 
long now = 1355754242785L;