You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python 3.6如何获取纳秒时间戳?适配InfluxDB 1.2方案求推荐

获取纳秒级时间戳并写入InfluxDB 1.2(Python 3.6兼容)

针对Python 3.6环境下的需求,这里有两个简便的方法获取纳秒级时间戳,再结合InfluxDB 1.2的写入示例,帮你快速实现需求:

一、获取纳秒级时间戳的两种简便实现

方法1:基于datetime模块(推荐,时区明确)

这个方法直接计算UTC时间距离Unix纪元(1970-01-01 UTC)的总纳秒数,逻辑清晰且时区明确:

import datetime

def get_utc_ns_timestamp():
    current_utc = datetime.datetime.utcnow()
    epoch = datetime.datetime(1970, 1, 1, tzinfo=datetime.timezone.utc)
    # 计算时间差的总秒数,再转换为纳秒
    return int((current_utc - epoch).total_seconds() * 10**9)

注:加上tzinfo=datetime.timezone.utc是为了避免潜在的时区警告,Python 3.6+支持这个写法。

方法2:基于time模块(更简洁)

如果不需要显式处理时区,time.time()返回的是Unix纪元以来的秒数(带小数),直接乘以1e9取整即可得到纳秒时间戳:

import time

def get_ns_timestamp():
    return int(time.time() * 10**9)

注:time.time()的精度依赖系统时钟,大部分现代系统能达到微秒级,转成纳秒后最后几位会是0,这是正常现象。

二、写入InfluxDB 1.2的完整示例

首先确保安装兼容InfluxDB 1.2的客户端版本:

pip install influxdb==5.3.1

然后结合上面的时间戳方法,编写写入代码:

import datetime
from influxdb import InfluxDBClient

def get_utc_ns_timestamp():
    current_utc = datetime.datetime.utcnow()
    epoch = datetime.datetime(1970, 1, 1, tzinfo=datetime.timezone.utc)
    return int((current_utc - epoch).total_seconds() * 10**9)

# 初始化InfluxDB连接(根据你的实际配置修改)
client = InfluxDBClient(
    host='localhost',
    port=8086,
    username='your_username',  # 如果开启了认证
    password='your_password',
    database='your_target_db'
)

# 构造符合InfluxDB Line Protocol的数据点
data = [
    {
        "measurement": "sensor_data",  # 你的测量表名
        "tags": {
            "device_id": "sensor_001"  # 标签,用于分组查询
        },
        "fields": {
            "temperature": 25.6,  # 字段,支持数值/字符串等类型
            "humidity": 62.3
        },
        "time": get_utc_ns_timestamp()  # 纳秒级时间戳
    }
]

# 写入数据
client.write_points(data)

关键注意事项

  • 时区一致性:InfluxDB默认存储UTC时间,推荐始终用UTC时间戳写入,避免跨时区查询时的混乱。
  • 数据类型:InfluxDB的时间戳必须是整数类型,所以一定要用int()转换,不能传入浮点数。
  • 客户端版本:InfluxDB 1.2比较老旧,务必安装influxdb==5.3.1这个兼容版本,新版本客户端可能无法正常连接。

内容的提问来源于stack exchange,提问作者saddayz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 08:25:28