如何将Unix时间戳转换为普通时间?
您的问题不太清晰。我将忽略时区的不确定性。
如何将Unix时间戳转换为正常时间?
我怀疑您从数据库中获取了一个long
或者String
值,而不是一个Date
。在JDBC中,您通常需要使用适当的方法来获取特定于数据库的数据类型。MySQL的TIMESTAMP
数据类型可以通过ResultSet#getTimestamp()
获得,它会给您一个java.sql.Timestamp
,它又是java.util.Date
的子类。
简而言之,以下代码应该可以解决问题:
Date date = resultSet.getTimestamp("columnname");
如果您要向最终用户展示内容,并以人类可读的格式进一步格式化它,请使用SimpleDateFormat
。单击链接,其中包含所有模式的概述。这是一个例子:
String dateString = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(date);
SimpleDateFormat#parse()
和 PreparedStatement#setTimestamp()
。Unix 时间戳是自“纪元”以来的秒数。Java 的 currentTimeMillis 是自“纪元”以来的毫秒数。您可以通过简单的乘法获得 Java Date 对象,例如:
Date dateFromUnixTime = new Date( 1000l * unixTime) ;
从那里,您可以使用Java中的常规日期格式化工具对其进行格式化。