java - 在java中将秒数转换为日期和时间组合的代码

标签 java

我有如下秒数:

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/

相关文章:

java - 在 Java 中复制到剪贴板

java.sql.SQLException : Operation not allowed after ResultSet closed MySQL Java

java - 线程池与许多单独的线程

java - SharedPreferences 已更新,但会在应用程序重置时重置

java - Agora 语音通话锁屏 1 分钟后停止音频

java - 如何在一天的不同时间添加多个通知

Java getClass().getClassLoader().getResource( "/My_Form.xsd") 返回 null

java - 哪个 Java 库用于从连接的摄像机录制视频?

java - 无法使用 Apache POI 打开 XLSX 文件 : NoClassDefFoundError

java - 我的代码抛出 java.lang.IllegalMonitorStateException