温馨提示×

ubuntu时间戳如何精确到微秒

小樊
39
2026-10-13 00:28:41
栏目: 智能运维

在 Ubuntu(以及一般 Linux 系统)中,时间戳通常指 Unix 时间(自 1970-01-01 00:00:00 UTC 起的秒数)。
如果你需要精确到微秒(μs,1 秒 = 1,000,000 微秒),有以下几种常用方式:


一、使用命令查看当前微秒级时间戳

1. date 命令(推荐)

date +%s%6N

说明:

  • %s:秒级时间戳
  • %6N:纳秒的前 6 位(即微秒)

示例输出:

1719301234567890

表示:秒 = 1719301234,微秒 = 567890


2. 使用 date 获取完整时间(含微秒)

date +"%Y-%m-%d %H:%M:%S.%6N"

示例:

2024-06-25 15:40:34.567890

二、在 Shell 脚本中获取微秒时间戳

microtime() {
    date +%s%6N
}

echo $(microtime)

或用于计算耗时:

start=$(date +%s%6N)
sleep 1
end=$(date +%s%6N)
echo "耗时(微秒): $((end - start))"

三、在编程语言中获取微秒时间戳

1. Python

import time

# 微秒级时间戳(浮点)
t = time.time()
print(int(t * 1_000_000))

或:

from datetime import datetime
print(datetime.now().microsecond)

2. C / C++

#include <stdio.h>
#include <sys/time.h>

int main() {
    struct timeval tv;
    gettimeofday(&tv, NULL);
    long micro = tv.tv_sec * 1000000 + tv.tv_usec;
    printf("%ld\n", micro);
    return 0;
}

3. Java

System.currentTimeMillis() * 1000 + 
    java.util.concurrent.TimeUnit.NANOSECONDS.toMicros(
        System.nanoTime() % 1_000_000);

四、注意事项

  • date 的精度依赖系统时钟(通常够用)
  • 真正的高精度计时(如性能测试)建议用:
    • clock_gettime(CLOCK_MONOTONIC)(C)
    • time.perf_counter()(Python)

如果你有具体使用场景(日志、性能测试、数据库、脚本等),我可以给你更合适的方案。

0 踩