问题描述
- Java计算现在时刻距离今天0时的时间差
-
在Java中获取一个当前时间毫秒值,比如现在1416725832762-->2014-11-23 14:57:12,实际时间距离北京时间今天0点已经过去将近15个小时,如果直接将这个数对86400000(24个小时的毫秒值)取余,得到的余数换算出来大概只有7个小时,我知道原因是这个时间是标准时间,正好于北京时间有8个小时的时差。
这个问题要如何解决呢?我现在用的方法是直接加上8个小时对应的毫秒值再取余,不知道有没有更好的方法呢?
解决方案
时间是以格林威治时间(GMT)为基准的
解决方案二:
一般取余,是针对10、100、1000这样1开头后面n个零的十进制数说的(当然,也可以对8进制、16进制等取余),你这个86400000取余就感觉不伦不类了。。你可以如下操作:
DateFormat df = new SimpleDateFormat("yyy-MM-dd");
Date d = df.parse("2014-11-23");
long now = System.currentTimeMillis();
long time = now-d.getTime();//当前时间离当天0点的毫秒数
或者说我没理解你的意思?
解决方案三:
Duration.between(LocalDateTime.of(LocalDate.now(), LocalTime.MIN), LocalDateTime.now()).toHours() + 1
JDK 8以后支持
时间: 2024-11-03 07:46:28