如何将毫秒转换为格林威治标准时间

时间:2013-11-20 22:45:14

标签: java simpledateformat

如何以毫秒为单位转换时间,例如:1384248606000

采用以下格式dd/MM/yyyy 24hourtimeformat GMT +timezoneoffset

以下函数的dateformat如何显示?

public static String getFormattedDate(long time, DateFormatType type) {
    String dateFormat = DateFormatType.getDateFormat(type);
    Calendar cal = Calendar.getInstance(Locale.ENGLISH);
    cal.setTimeInMillis(time);
    String date = DateFormat.format(dateFormat, cal).toString();
    return date;
}

4 个答案:

答案 0 :(得分:0)

尝试H 24小时格式

final SimpleDateFormat df = new SimpleDateFormat(“dd / MM / yyyy HH:mm:ss zzz”);

答案 1 :(得分:0)

毫秒是时间的实际值,与时区和日历无关。您想要的字符串是该时间的演示文稿。

所以你应该使用一个日历,一个TimeZone(默认值是你的操作系统的TimeZone,它不是GMT)和一个SimpleDateFormat。

将正确的GMT时区分配给日历,将日历分配给SimpleDateFormat。就是这样。

答案 2 :(得分:0)

Java 1.7中SimpleDateFormat的javadoc明确指出:

  

定义了以下模式字母(从'A'到'Z'和从'a'到'z'的所有其他字符都是保留的):

    Letter      Date or Time Component  Presentation    Examples
    ...          
    H           Hour in day (0-23)      Number          0
    ...

它在Java 5.0中也是如此......这是最容易访问的最早版本。

如果这对您不起作用,那么您使用的是一些古怪/古老/不兼容的Java版本......或者您的程序不正确。也许你在源代码中使用了一个homoglyph来表示Latin H字符;见http://homoglyphs.net/

答案 3 :(得分:0)

这是正确答案:

https://stackoverflow.com/a/9290138/2136812

String cdate =(String)DateFormat.format(“yyyy-MM-dd kk:mm:ss”,c.getTime());

由于某种原因,我应该把“kk”而不是“hh”或“HH”,它的效果很好!