日期未转换为毫秒

时间:2019-02-04 09:32:43

标签: android

如何将双精度日期转换为日期?

"orderDate":1538398507000,

这是我获取日期的方式,并将其转换为日期

Date d = new Date(myOrderDataList.get(position).getOrderDate()*1000);

但它显示的是1970年

2 个答案:

答案 0 :(得分:1)

  

尝试

private String getStringDate(long time) {
    Calendar cal = Calendar.getInstance(Locale.ENGLISH);
    cal.setTimeInMillis(time);
    String date = DateFormat.format("dd-MM-yyyy", cal).toString();
    return date;
}

答案 1 :(得分:0)

由于您的double代表从现在起的秒数,并且Java中的Date构造函数期望自1970年1月1日以来的毫秒数,因此您必须将数字乘以获取毫秒数(* 1000并减去自1970年1月1日以来的当前毫秒数(System.currentTimeMillis()):

double myDouble = -242528463.775282;
long myLong = System.currentTimeMillis() + ((long) (myDouble * 1000));
System.out.println(myLong);

Date itemDate = new Date(myLong);
String myDateStr = new SimpleDateFormat("dd-MM-yyyy").format(itemDate);
System.out.println(myDateStr);

但是,日期存储方式的问题在于,如果今天和明天调用此代码,则由于当前时间在变化,它将不会返回相同的日期。您应该使用timeIntervalSince1970而不是timeIntervalSinceNow