首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在原生Android代码中获取当前时间?

如何在原生Android代码中获取当前时间?
EN

Stack Overflow用户
提问于 2010-09-30 23:24:45
回答 3查看 24.7K关注 0票数 24

我想知道是否有一种简单的方法可以在原生Android代码中获取当前时间。最好,它可以与System.getTimeMillies()相媲美。我将只使用它来查看某些函数调用将花费多长时间,因此当前时间为毫秒的长变量将是我的最佳解决方案。

提前感谢!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-10-02 02:23:36

对于微秒分辨率,您可以使用gettimeofday()。这使用“挂钟时间”,当设备处于睡眠状态时,它会继续前进,但如果网络更新了设备的时钟,它就会突然向前或向后移动。

您也可以使用clock_gettime(CLOCK_MONOTONIC)。这使用单调时钟,它从不向前或向后跳跃,而是在设备休眠时停止计数。

计时器的实际分辨率取决于设备。

这两个API都是POSIX API,而不是特定于Android的。

票数 18
EN

Stack Overflow用户

发布于 2013-01-14 10:55:42

对于懒惰的人,将以下代码添加到您的代码顶部:

代码语言:javascript
复制
#include <time.h>

// from android samples
/* return current time in milliseconds */
static double now_ms(void) {

    struct timespec res;
    clock_gettime(CLOCK_REALTIME, &res);
    return 1000.0 * res.tv_sec + (double) res.tv_nsec / 1e6;

}

这样叫它:

代码语言:javascript
复制
double start = now_ms(); // start time

// YOUR CODE HERE

double end = now_ms(); // finish time

double delta = end - start; // time your code took to exec in ms
票数 32
EN

Stack Overflow用户

发布于 2017-03-21 22:29:28

另一个用于惰性的函数,该函数使用CLOCK_MONOTONIC返回以纳秒为单位的当前时间

代码语言:javascript
复制
#include <time.h>
#define NANOS_IN_SECOND 1000000000

static long currentTimeInNanos() {

    struct timespec res;
    clock_gettime(CLOCK_MONOTONIC, &res);
    return (res.tv_sec * NANOS_IN_SECOND) + res.tv_nsec;
}
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3832097

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档