我正在尝试将字符串(带有 unix 时间戳)转换为格式为 (dd-MM-yyyy) 的日期
这部分起作用了。我现在遇到的问题是我的约会日期是 17-01-1970(而不是 2015 年 3 月 16 日)
我是这样转换的:
SimpleDateFormat dateFormat = new SimpleDateFormat("dd-MM-yyyy");
Date d = null;
int dateMulti = Integer.parseInt(Date);
Calendar cal = Calendar.getInstance(Locale.ENGLISH);
cal.setTimeInMillis(dateMulti);
String date = DateFormat.format("dd-MM-yyyy", cal).toString();
Log.d("test",date);
try {
d = dateFormat.parse(date);
} catch (ParseException e) {
e.printStackTrace();
}
其中日期 = 1427101853 结果 = 17-01-1970
我做错了什么?
最佳答案
您在第一行中使用了错误的格式字符串:
SimpleDateFormat dateFormat = new SimpleDateFormat("dd-mm-yyyy");
mm
是分钟。请改用 MM
(月)。
编辑 Unix 时间戳是自格林威治标准时间 01-01-1970 00:00:00 以来的秒数。 Java 从格林威治标准时间 01-01-1970 00:00:00 开始以毫秒测量时间。您需要将 Unix 时间戳乘以 1000:
cal.setTimeInMillis(dateMulti * 1000L);
关于android 时间戳解析出错(总是在 1970 年),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29206821/