我有几秒如下:
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);
Run Code Online (Sandbox Code Playgroud)
任何人都可以指导我得到正确的答案吗?
听起来这只是一个时区问题 - 您需要为格式化程序设置时区:
sdf.setTimeZone(TimeZone.getTimeZone("UTC"));
Run Code Online (Sandbox Code Playgroud)
(请注意,在您的示例代码中,long millis = 1320130800*1000;它不起作用,因为它在32位算术中执行乘法;您需要类似的东西long millis = 1320130800L*1000;.)
| 归档时间: |
|
| 查看次数: |
6080 次 |
| 最近记录: |