我有如下秒数:
1320130800
我需要将值转换为日期和时间组合格式。格式化时我得到的结果如下:
2011 年 11 月 1 日星期二凌晨 2:00
但正确的结果如下:
2011 年 11 月 1 日星期二上午 7:00
对于上述格式转换,我使用了以下代码:
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;
.)
关于java - 在java中将秒数转换为日期和时间组合的代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8273200/