如何将unix时间戳中的时间转换为正常时间?
答案 0 :(得分:19)
你的问题含糊不清。我会把时区模糊不清。
如何将unix时间戳中的时间转换为正常时间?
我怀疑您以某种方式从数据库而不是long
获取String
或Date
值。在JDBC中,您通常希望使用适当的方法来获取特定于数据库的数据类型。可以通过ResultSet#getTimestamp()
获取MySQL TIMESTAMP
数据类型,它会为您提供java.sql.Timestamp
,而java.util.Date
又是SimpleDateFormat
的子类。
在坚果中,以下应该做:
Date date = resultSet.getTimestamp("columnname");
如果要将其呈现给最终用户,要以人类可读的格式进一步格式化,请使用SimpleDateFormat#parse()
。单击该链接,其中包含所有模式的概述。这是一个例子:
String dateString = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(date);
要完全相反,请分别使用PreparedStatement#setTimestamp()
和{{3}}。
答案 1 :(得分:1)
Unix时间戳是“epoch”以来的秒数。 Java的currentTimeMillis是“epoch”以来的毫秒数。您可以通过简单的乘法获取Java Date对象,如下所示:
Date dateFromUnixTime = new Date( 1000l * unixTime) ;
从那里,您可以使用Java中的普通日期格式化工具对其进行格式化。