如何以毫秒为单位转换时间,例如: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;
}
答案 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”,它的效果很好!