TimeSyncer 模块
模块介绍
时间同步管理类,使用 NTP(网络时间协议)同步 RTC(实时时钟),并提供本地时间和 HTTP 时间格式的获取方法。适用于需要准确时间的物联网项目、数据记录等应用场景。
初始化参数
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| timezone | int | 8 | 本地时区偏移(小时),默认 8(北京时间 UTC+8) |
导入和实例创建
python
from time_sync import TimeSyncer
# 初始化时间同步器(北京时间 UTC+8)
ts = TimeSyncer(timezone=8)核心属性方法
| 属性或方法 | 参数 | 返回类型 | 说明 |
|---|---|---|---|
| is_synchronized | 无 | bool | 只读属性:是否已成功同步时间 |
| 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 时间字符串