用Java将Unix时间转换为可读日期

用Java将Unix时间转换为可读日期,java,datetime,Java,Datetime,在Java中最简单的方法是什么?理想情况下,我将使用Unix时间(以毫秒为单位)作为输入,函数将输出一个字符串,如 2011年11月7日下午5:00我想将我的unix_时间戳(如1372493313)转换为人类可读的格式(如6月29日4:08) SimpleDateFormat sdf = new SimpleDateFormat("MMMM d, yyyy 'at' h:mm a"); String date = sdf.format(myTimestamp); 上面的回答对我的Androi

在Java中最简单的方法是什么?理想情况下,我将使用Unix时间(以毫秒为单位)作为输入,函数将输出一个字符串,如


2011年11月7日下午5:00

我想将我的unix_时间戳(如1372493313)转换为人类可读的格式(如6月29日4:08)

SimpleDateFormat sdf = new SimpleDateFormat("MMMM d, yyyy 'at' h:mm a");
String date = sdf.format(myTimestamp);
上面的回答对我的Android应用程序代码有帮助。有一点不同的是,在Android上,它建议也使用区域设置,我最初的unix_时间戳是以秒为单位的,而不是以毫秒为单位的,Eclipse希望添加try/catch块或抛出异常。因此,我的工作代码必须进行如下修改:

/**
 * 
 * @param unix_timestamp
 * @return
 * @throws ParseException 
 */
private String unixToDate(String unix_timestamp) throws ParseException {    
    long timestamp = Long.parseLong(unix_timestamp) * 1000;

    SimpleDateFormat sdf = new SimpleDateFormat("MMM d H:mm", Locale.CANADA);
    String date = sdf.format(timestamp);

    return date.toString();
}
这是呼叫代码:

String formatted_timestamp;
try {
        formatted_timestamp = unixToDate(unix_timestamp); // timestamp in seconds
    } catch (ParseException e) {
        e.printStackTrace();
    }

你看过日历了吗?:你为什么不玩玩一会儿,告诉我们你是否/何时卡住了?这非常有效,除非在“0”结束时,例如1:40或5:20,0将不会显示。对不起,请尝试h:mm,而不是h:mI在我的时间戳为2015年1月时,将1970年1月作为输出。将时间戳乘以1000L就可以了。
java.util.Date date = new java.util.Date((long) time * 1000L);

SimpleDateFormat simpleDateFormat = new SimpleDateFormat(pattern);

simpleDateFormat.setTimeZone(TimeZone.getTimeZone("UTC"));