Date now = new Date();
long timeInterval = now.getTime() - (15705 * 24 * 60 * 60 * 1000L);
long hours = timeInterval / (60 * 60 * 1000L);
LOG.debug(String.format("current date:%s, timeInterval:%d,hours:%d",now.toString(),timeInterval, hours));
系统打印结果为(15705表示自1970年代以来的天数):
12/12/31 22:06:47 DEBUG stat.TimeTest: current date:Mon Dec 31 22:06:47 CST 2012, timeInterval:50807153, hours:14
您可以看到当前时间是 21 小时,但结果显示为 14 小时。
最佳答案
Mon Dec 31 22:06:47 CST 2012
采用 GMT 时间表示为 Mon Dec 31 14:06:47 2012
,这是开始时使用的时区属于这个时代。
换句话说,now.getTime()
返回自 1970 年 1 月 1 日 00:00:00 GMT 并且您使用不同时区以来的毫秒数。
关于java - ISO 时间出现意外输出 (8601),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14102593/