有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

Java/Android绝对最快的周期性获取当前秒(059)和/或毫秒(0999)的方式

我每100毫秒在一个Android应用程序中执行一个Runnable,用Java ScheduledExecutorService包装。作为run()块的一部分,我需要获得当前秒数为0-59,毫秒数为0-999。两者都应该在当地时间,尽管UTC也是可行的

什么是绝对最快的方法?不需要国际化/独特的日历

目前,我正在以下面的方式使用^{,但我认为使用System.currentTimeMillis()和做一些数学运算可能会更快,我希望您能提供任何信息

Calendar calendar = Calendar.getInstance();
int seconds = calendar.get(Calendar.SECOND);

如果相关的话,这实际上是在Android应用程序中

编辑以澄清

获取当前秒数为0-59(即相对于当前分钟数)是至关重要的,因此System.currentTimeMillis()会带来我前面提到的数学代价。我不确定的是,做这个数学+系统调用是否会比调用Calendar更快,或者是否有任何其他选项(比如Joda Time)的占用空间更小

作为参考,下面是我能想到的从Unix时间戳中获取秒数(0-59)的最直接方法

double seconds = Math.floor(((Math.floor(System.currentTimeMillis() / 1000) % 86400) % 3600) % 60);

共 (0) 个答案