我的秒数如下:

1320130800

我需要将值转换为日期和时间组合格式。格式化时,结果如下:

Tuesday,November 1,2011 2:00,AM

但是正确的结果如下:

Tuesday,November 1,2011 7:00,AM

对于以上格式转换,我使用了以下代码:

 long millis = 1320130800*1000;
           Date date = new Date(millis);
           SimpleDateFormat sdf = new SimpleDateFormat("EEEE,MMMM d,yyyy h:mm a");
           String formattedDate = sdf.format(date);
           System.out.println(formattedDate);


谁能指导我获得正确答案?

最佳答案

听起来这只是一个时区问题-您需要为格式化程序设置时区:

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


(请注意,在示例代码中,long millis = 1320130800*1000;不起作用,因为它以32位算术执行乘法;您需要类似long millis = 1320130800L*1000;的东西。)

08-05 19:11