Java:将纪元日期转换为MM/DD/YYYY格式

3

我的时间:1386696238

我的代码:

Date date = new Date(Long.parseLong(currentNotification.getDate_created()));
        SimpleDateFormat formatter = new SimpleDateFormat("MM/DD/yyyy", Locale.getDefault());
        String dateString = formatter.format(date);

我的结果:1/16/1970

期望的结果:12/10/2013

我做错了什么?


每月的日期:d(小写) - oliholz
@Reimeus 将其乘以1000后,在我的应用程序中得到了正确的日期。 - CQM
java.util日期时间API及其格式化API SimpleDateFormat已过时且容易出错。建议完全停止使用它们,转而使用现代日期时间API。请参阅此页面,以获得使用现代日期时间API的答案。 - Arvind Kumar Avinash
2个回答

6

你的值是以秒为单位的,因此需要将其乘以1000。

另外,DD表示年份中的第几天,你需要使用dd代替:

SimpleDateFormat formatter = new SimpleDateFormat("MM/dd/yyyy", Locale.getDefault());

4

我想你应该将输入乘以1000(UNIX时间戳以秒为单位,但Java j.u.Date以毫秒为单位)。

编辑:

哦,你代码中还有另一个错误:模式符号应该是d,而不是D(年中的天数)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接