我以这种方式进行了MySQL查询:

SELECT AVG(REALPOWER) AS REALPOWER,
  `OBJECTID`,
  UNIX_TIMESTAMP(LASTUPDATE)/(30*60) AS LASTUPDATE
FROM POWER
GROUP BY UNIX_TIMESTAMP(LASTUPDATE)/(30*60),
  OBJECTID


将我的行按30分钟间隔进行分组。
然后在Java中我想将LASTUPDATE转换为日期。

问题是我无法理解如何使用LASTUPDATE,其值如下所示:
823945.7650000000,823945.7705555550,823945.7761111110

即使将它们乘以1000来得到毫,也给我一个约会的价值。

double last = Double.parseDouble(rs.getString("LASTUPDATE"));
Date date = new Date((long) last*1000L);

最佳答案

Java中的Date对象只是一个时间点。使用7及更早版本的API,如果您想实际看到格式化的日期,则必须使用SimpleDateFormat之类的东西。这是一个例子:

double last = Double.parseDouble(rs.getString("LASTUPDATE"));
Date date = new Date((long) last*1000L);
SimpleDateFormat sdf = SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS", Locale.ENGLISH);
String dateFormatted = sdf.format(date);
System.out.println(dateFormatted);

关于java - 在Java中将UNIX_TIMESTAMP从SQL查询转换为日期时出现问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41415772/

10-09 02:09