坚持将unix时间戳字符串转换为可读日期

时间:2017-12-31 16:25:06

标签: java android

尝试尽快将其转换为可读日期格式 并陷入困境:

item.put("date", DateFormat.format("dd/MM/yyyy hh:mm:ssaa", jsonChildNode.optString("date") * 1000L));

Error: Operator '*' cannot be applied to 'java.lang.String', 'long'

2 个答案:

答案 0 :(得分:0)

更改了代码:

int date = Integer.valueOf(jsonChildNode.optString("date"));
item.put("date", DateUtils.formatDateTime(HistoryWithdrawal.this, date, DateUtils.FORMAT_SHOW_DATE));

答案 1 :(得分:0)

上面的答案忽略了它是一个Unix时间戳这样的事实,因此它不适合int值。同样来自你的问题,似乎它是以秒为单位的Unix时间戳,而不是Date类接受的毫秒数。

SimpleDateFormat sdf = new SimpleDateFormat ("dd/Mm/yyyy hh:mm:ss aa");

long unixTimeInSeconds = jsonChildNode.getLong("date");

item.put("date",sdf.format(new Date(unixTimeInSeconds * 1000L)));


Log.d("tag",sdf.format(new Date(unixTimeInSeconds * 1000L)));

这里把所有内容放在try catch块中,因为如果时间戳键不存在或者有些数据无法被解析为long,则此代码可以抛出异常