java System.currentTimeMillis()陷阱

long time=System.currentTimeMillis();
		int hour=(int)(time/1000/36000%24);
		System.out.println(hour);


昨夜本人想算下当前时间,就写了这么几行代码,发现算出的小时数总与正常时间对不上,百思不得其解。

经过多方调研才发现,System.currentTimeMillis()获得的毫秒数是以英国时区为基础。

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: java system.currenttimemillis是一个Java语言中的系统函数,用于获取当前系统时间的毫秒数。它返回一个long类型的值,表示从197年1月1日00:00:00到当前时间的毫秒数。这个函数通常用于计算程序的执行时间或者记录日志等操作。 ### 回答2: Java 中的 System.currentTimeMillis() 方法是一个用于获取当前系统时间的函数。它返回一个表示从 1970 年 1 月 1 日起到当前时间所经过的毫秒数。这个值是一个 long 类型的整数。 这个函数通常被用于监测代码的性能,或者计算程序执行时间等。比如,在某些需要实现超时机制的程序中,我们可以先获取当前时间戳,然后在一定的时间内检查程序是否执行完毕。若超时,程序就会停止执行并返回一个错误信息或者抛出一个异常。 另外,我们还可以用这个函数来生成唯一的序列号或者随机数。比如,我们可以把当前时间戳作为基础,再加上一些随机数或者节点编号等,来生成一个全局唯一的 ID。这样,我们就可以在分布式系统中,快速地查找和识别不同的节点。 需要注意的是,这个函数返回的是基于系统时间的毫秒数,而不是基于 CPU 时间的。这意味着,如果我们在一个高负载的服务器上运行程序,这个函数获取到的时间可能会出现偏差。因此,我们应该在实际应用中,根据具体的需求和场景,选择合适的时间戳获取方式。 ### 回答3: Java 中的 System.currentTimeMillis() 是一个内置方法,它返回当前时间的毫秒数。它的返回值是从当前时刻起到 1970 年 1 月 1 日 00:00:00 UTC(协调世界时)的毫秒数。它是用来进行时间戳(timestamp)的创建和比较的,时间戳是一种表示时间的标准方法,通常用于记录事件的时间和顺序。 System.currentTimeMillis() 方法返回当前系统时间,可以用于测量一段代码所花费的时间,实现计时功能等。通常情况下,建议使用 System.nanoTime() 方法来测量时间,因为它具有更高的精度和更佳的时间分辨率。 需要注意的是, System.currentTimeMillis() 方法返回的时间戳受系统时间的影响。如果系统时间发生了更改,例如在冬令时时钟更改时,在时间戳的计算中可能会出现不准确的情况。此外,在跨时区使用时,也需要考虑时区的影响,可能需要进行一些调整。 总之,System.currentTimeMillis() 是 Java 中用于获取当前时间戳的重要方法之一,它可以用于计时、记录事件和进行时间戳的比较等各种场合。在使用时需要注意时间精度和时区调整等细节。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值