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

时间:2011-11-08 05:06:02

标签: java datetime

在Java中最简单的方法是什么?理想情况下,我将以毫秒为单位使用Unix时间作为输入,函数将输出类似

的字符串

2011年11月7日下午5:00

3 个答案:

答案 0 :(得分:19)

SimpleDateFormat sdf = new SimpleDateFormat("MMMM d, yyyy 'at' h:mm a");
String date = sdf.format(myTimestamp);

答案 1 :(得分:3)

我想将我的unix_timestamps(如1372493313)转换为人类可读格式,如Jun 29 4:08。

上面的回答帮助我了解了我的Android应用代码。有点不同的是,在Android上它建议使用区域设置,而我原来的unix_timestamp是以秒为单位,而不是毫秒,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();
    }

答案 2 :(得分:0)

java.util.Date date = new java.util.Date((long) time * 1000L);

SimpleDateFormat simpleDateFormat = new SimpleDateFormat(pattern);

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