草庐IT

currentTimeMillis

全部标签

Java 计时,System.nanoTime() 比 System.currentTimeMillis() 更胜一筹,但它会持续 sleep 吗?

我正在尝试实现一个计时器,它可用于短(秒)事件或更长(小时等)事件。理想情况下,它应该在CPU关闭期间持续存在,例如,电池没电了。如果我使用System.currentTimeMillis()设置开始时间并使用相同的函数设置结束时间,它几乎适用于所有情况,但闰秒、闰年、夏令时更改等期间除外……或者,如果用户只是更改时间(我已经验证了这一点)。顺便说一句,这是在Android系统上。相反,如果我使用System.nanoTime(),除了可能更准确之外,它不会有时间变化等常见的“困难时期”问题。我的问题是,System.nanoTime()在“困难时期”从任意时间开始测量纳秒?我不确定正

android - 我们游戏中的计时错误,currentTimeMillis 卡住?

在测试严重依赖System.currentTimeMillis()的游戏时,我们遇到了一个烦人的错误。我们的游戏使用一组增量时间戳来指示某些事情应该发生的时间。这些时间戳与正在播放的一段音乐相匹配。在家测试完全没有问题。在我们家进行测试时,不可能重现错误。但是在城市之间驾驶汽车进行测试时,我们会遇到时间戳和音乐之间的同步问题。我最好的猜测是Android卡住了系统,包括系统计时器,因为它正在切换网络或寻找信号?我尝试在游戏中插入一个假的hick-up,方法是在我按下某个按钮时让线程休眠几秒钟。这会卡住屏幕(很明显),但是当sleep结束时一切仍然同步良好。重现此错误的唯一方法是乘汽车、

java - Android:深度 sleep 的时间间隔(System.nanoTime(), System.currentTimeMillis(), SystemClock.elapsedRealtimeNanos())

我正在实现一个最低API级别14(这很重要)并且需要一致的间隔测量的应用程序。不需要ms精度,它只需要始终计算时间(经过的秒数)。到目前为止,要处理时间间隔,我知道这些解决方案:System.nanoTime()-如果Android正在运行,效果很好,但在深度sleep时停止(这很糟糕)。System.currentTimeMillis()-很好,但不合适,因为它可以由用户或使用setCurrentTimeMillis(long)的代码更改。SystemClock.elapsedRealtimeNanos()-即使在深度sleep时也计算耗时,但需要API级别17。是否有另一种方法可以

java - 使用 System.currentTimeMillis() 每秒运行一次代码

我试图通过使用System.currentTimeMillis();每秒运行一行代码。代码:while(true){longvar=System.currentTimeMillis()/1000;doublevar2=var%2;if(var2==1.0){//codetorun}//If():}//While我要运行的代码运行了多次,因为由于整个无限循环,var2被多次设置为1.0。我只想在var2第一次设置为1.0时运行代码行,然后每次在0.0之后var2变为1.0时再次运行。 最佳答案 如果你想忙着等待秒数改变你可以使用下面的

java.lang.System.currentTimeMillis() 替换方法

除了重新编译rt.jar之外,还有什么方法可以用我自己的调用替换currentTimeMillis()调用吗?1#正确的做法是使用时钟对象和抽象时间。我知道,但我们将运行由无数开发人员开发的代码,这些开发人员尚未实现Clock或已经实现了他们自己的实现。2#使用像JMockit这样的模拟工具来模拟该类。即使这只适用于Hotspot禁用-Xint并且我们成功使用下面的代码它不会“持久”在外部库上。这意味着你必须在任何地方模拟它,因为代码不在我们的控制范围内,这是不可行的。main()下的所有代码确实返回0毫秒(如示例所示),但newDateTime()将返回实际的系统毫秒。@MockCl

java - Java 重新排序会影响 System.currentTimeMillis() 吗?

根据Java内存模型,指令可以重新排序,只要执行well-formed即可。.所以我想知道,以下代码是否可能产生以下输出?[代码][在同一个线程中]longa=System.currentTimeMillis();longb=System.currentTimeMillis();longc=System.currentTimeMillis();[输出]a==10,b==20,c==15如果不可能,那么JVM/实现如何防止这种情况发生? 最佳答案 请看这个问题Instructionreordering&happens-beforere

java - JSR 310::System.currentTimeMillis() 与 Instant.toEpochMilli()::TimeZone

您能否阐明如何为默认系统时区和给定时区获取以毫秒为单位的正确纪元时间。给定1.时区:GMT+32。以下代码片段:importjava.time.*;publicclassMain{publicstaticvoidmain(String[]args){System.out.println(LocalDateTime.now().atZone(ZoneOffset.UTC).toInstant().toEpochMilli());System.out.println(LocalDateTime.now().atZone(ZoneOffset.of("+3")).toInstant().to

java - System.currentTimeMillis 的长度

System.currentTimeMillis是否始终返回固定长度的值。在我的windowsCore2中,它返回一个13位长值。来自其API:Returnsthecurrenttimeinmilliseconds.Notethatwhiletheunitoftimeofthereturnvalueisamillisecond,thegranularityofthevaluedependsontheunderlyingoperatingsystemandmaybelarger.Forexample,manyoperatingsystemsmeasuretimeinunitsoftens

ios - 在 iOS 中如何像 Java 中的 System.currentTimeMillis() 那样获取当前时间?

在Java中我们使用System.currentTimeMillis()来获取时间,在iOS中有类似的方法吗? 最佳答案 NSDate().timeIntervalSince1970*1000 关于ios-在iOS中如何像Java中的System.currentTimeMillis()那样获取当前时间?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/35525316/

android - System.currentTimeMillis() 在华为上返回错误的时间戳

问题在于System.currentTimeMillis()以不同的时间范围返回错误的毫秒数,主要在未来有时长达6个月,但从几秒到几个月不等。发生这种情况的设备是Android5.1.1上的平板电脑型号HuaweiM2-A201W,内核版本为:**3.10.74-gdbd9055**我的第一个假设是NTP不知何故弄乱了时间,但我有成千上万的平板电脑,其中一些没有网络连接,没有SIM卡,所以没有GSM/3G/4G.我正在使用System.currentTimeMillis()在本地sqlite数据库中创建行的时间保存在表的列中。这种异常情况在我使用的平板电脑上经常发生(每个System.