我以这种方式进行了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/