如何将双精度日期转换为日期?
"orderDate":1538398507000,
这是我获取日期的方式,并将其转换为日期
Date d = new Date(myOrderDataList.get(position).getOrderDate()*1000);
但它显示的是1970年
答案 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
。