可以通过比较获取到的时间戳与当前系统时间戳的差值来判断ktime_get_real_ts64获取的是UTC时间还是本地时间。

  1. 获取当前系统时间戳:

    struct timespec now;
    getnstimeofday(&now);
    unsigned long sys_time = now.tv_sec;
    
  2. 获取ktime_get_real_ts64获取的时间戳:

    struct timespec64 ktime;
    ktime = ktime_get_real_ts64();
    unsigned long ktime_time = ktime.tv_sec;
    
  3. 比较两个时间戳的差值:

    unsigned long time_diff = sys_time - ktime_time;
    
  4. 判断差值的范围:

    • 如果差值在正负13小时以内,可以判断为本地时间,因为时区差异通常不会超过13小时。
    • 如果差值超过13小时,可以判断为UTC时间。

注意:

  • 以上方法基于假设系统时间与ktime_get_real_ts64获取的时间戳在同一个时区下。
  • 如果系统时间与获取到的时间戳不在同一个时区下,差值可能会超过13小时,需要根据实际情况进行调整
怎么判断ktime_get_real_ts64获取到的是utc时间还是本地时间

原文地址: https://www.cveoy.top/t/topic/hY9H 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录