Skip to content

TimeSyncer 模块

模块介绍

时间同步管理类,使用 NTP(网络时间协议)同步 RTC(实时时钟),并提供本地时间和 HTTP 时间格式的获取方法。适用于需要准确时间的物联网项目、数据记录等应用场景。

初始化参数

参数类型默认值说明
timezoneint8本地时区偏移(小时),默认 8(北京时间 UTC+8)

导入和实例创建

python
from time_sync import TimeSyncer

# 初始化时间同步器(北京时间 UTC+8)
ts = TimeSyncer(timezone=8)

核心属性方法

属性或方法参数返回类型说明
is_synchronizedbool只读属性:是否已成功同步时间
sync()timeout=5 (int), force=False (bool)bool通过 NTP 同步时间,返回 True/False
now()formatted=True (bool)str/tuple获取本地时间,格式化字符串或 time.localtime 元组
http_time()str获取符合 HTTP 标准的 UTC 时间字符串
status()None打印当前时间状态

使用示例

基本时间同步

python
from time_sync import TimeSyncer

# 初始化时间同步器(北京时间)
ts = TimeSyncer(timezone=8)

# 同步时间
success = ts.sync()
if success:
    print("时间同步成功!")
    print(f"本地时间: {ts.now()}")
    print(f"已同步: {ts.is_synchronized}")
else:
    print("时间同步失败")

获取本地时间

python
from time_sync import TimeSyncer

# 初始化并同步时间
ts = TimeSyncer(timezone=8)
ts.sync()

# 获取格式化的本地时间字符串
local_time = ts.now()  # 返回 '2025-01-01 12:00:00'
print(f"格式化时间: {local_time}")

# 获取时间元组格式
local_time_tuple = ts.now(formatted=False)  # 返回 time.localtime 元组
print(f"时间元组: {local_time_tuple}")

获取HTTP时间格式

python
from time_sync import TimeSyncer

# 初始化并同步时间
ts = TimeSyncer(timezone=8)
ts.sync()

# 获取符合HTTP标准的UTC时间字符串
http_time_str = ts.http_time()  # 返回 'Sun, 28 Sep 2025 03:43:00 GMT'
print(f"HTTP 时间: {http_time_str}")

查看同步状态

python
from time_sync import TimeSyncer

# 初始化时间同步器
ts = TimeSyncer(timezone=8)

# 查看初始状态
ts.status()

# 同步时间
ts.sync()

# 再次查看状态
ts.status()

注意事项

网络要求

设备必须已连接到互联网才能通过 NTP 同步时间

同步策略

  • 默认同步间隔:4小时内不会重复同步(避免频繁网络请求)
  • 强制同步:可设置 force=True 参数强制重新同步

时区设置

  • timezone 参数:本地时区相对于 UTC 的偏移小时数
  • 示例:北京时间 (UTC+8) 设置为 timezone=8

时间格式

  • now() 方法:返回格式化字符串或 time.localtime 元组
  • http_time() 方法:返回符合 HTTP/1.1 RFC 1123 标准的 UTC 时间字符串