MediaCrawler-new时间工具类:Unix时间戳与RFC2822格式互转

MediaCrawler-new时间工具类:Unix时间戳与RFC2822格式互转

【免费下载链接】MediaCrawler-new 【免费下载链接】MediaCrawler-new 项目地址: https://gitcode.com/GitHub_Trending/me/MediaCrawler-new

在数据采集和处理过程中,时间格式的转换是常见需求。MediaCrawler-new项目提供了功能完善的时间工具类,支持Unix时间戳与RFC2822格式的相互转换。本文将详细介绍tools/time_util.py模块的使用方法,帮助开发者快速上手时间格式处理。

工具类功能概览

tools/time_util.py模块包含10+个时间处理函数,核心功能涵盖:

  • Unix时间戳(秒/毫秒)与字符串格式互转
  • RFC2822时间格式解析与转换
  • 本地时间与UTC时间转换
  • 日期时间格式化输出

模块文件结构

tools/
├── __init__.py
├── time_util.py      # 时间工具类核心实现
└── ...

核心转换功能详解

1. RFC2822转Unix时间戳

RFC2822(电子邮件日期格式)是互联网常用的时间表示方式,格式如"Sat Dec 23 17:12:54 +0800 2023"。模块提供rfc2822_to_timestamp()函数实现转换:

from tools.time_util import rfc2822_to_timestamp

rfc_time = "Sat Dec 23 17:12:54 +0800 2023"
timestamp = rfc2822_to_timestamp(rfc_time)
print(timestamp)  # 输出:1703315574

函数内部实现逻辑:

  1. 使用datetime.strptime()解析RFC2822格式字符串
  2. 转换为UTC时区时间
  3. 计算并返回Unix时间戳(秒级)

2. Unix时间戳转本地时间

对于13位毫秒级时间戳,get_time_str_from_unix_time()函数可自动识别并转换:

from tools.time_util import get_time_str_from_unix_time

# 处理毫秒级时间戳
ms_timestamp = 1703315574000
print(get_time_str_from_unix_time(ms_timestamp))  # 输出:2023-12-23 17:12:54

# 处理秒级时间戳
s_timestamp = 1703315574
print(get_time_str_from_unix_time(s_timestamp))  # 输出:2023-12-23 17:12:54

3. RFC2822转中国本地时间

rfc2822_to_china_datetime()函数可直接将RFC2822时间转换为东八区(UTC+8)时间:

from tools.time_util import rfc2822_to_china_datetime

rfc_time = "Sat Dec 23 17:12:54 +0800 2023"
china_time = rfc2822_to_china_datetime(rfc_time)
print(china_time.strftime("%Y-%m-%d %H:%M:%S"))  # 输出:2023-12-23 17:12:54

应用场景示例

场景1:API响应时间处理

在爬虫开发中,常需处理接口返回的时间戳:

# 假设从API获取的时间戳
api_timestamp = 1703315574000  # 毫秒级

# 转换为可读时间
from tools.time_util import get_time_str_from_unix_time
print(get_time_str_from_unix_time(api_timestamp))  # 2023-12-23 17:12:54

场景2:日志时间标准化

将不同格式的时间统一转换为Unix时间戳存储:

from tools.time_util import rfc2822_to_timestamp, get_unix_time_from_time_str

# 处理RFC2822格式日志
log_time1 = "Sat Dec 23 17:12:54 +0800 2023"
print(rfc2822_to_timestamp(log_time1))  # 1703315574

# 处理普通字符串格式日志
log_time2 = "2023-12-23 17:12:54"
print(get_unix_time_from_time_str(log_time2))  # 1703315574

函数调用流程图

mermaid

完整函数列表

函数名功能描述参数类型返回值
get_current_timestamp()获取当前13位毫秒时间戳-int
get_unix_timestamp()获取当前10位秒级时间戳-int
get_time_str_from_unix_time(unixtime)时间戳转日期时间字符串intstr
get_date_str_from_unix_time(unixtime)时间戳转日期字符串intstr
rfc2822_to_timestamp(rfc2822_time)RFC2822转Unix时间戳strint
rfc2822_to_china_datetime(rfc2822_time)RFC2822转中国本地时间strdatetime

扩展阅读

通过本文介绍,您已掌握MediaCrawler-new时间工具类的核心用法。该模块已在多个平台爬虫中得到验证,如media_platform/douyin/core.pymedia_platform/xhs/core.py均有广泛应用。如需进一步定制时间格式,可基于现有函数进行扩展开发。

【免费下载链接】MediaCrawler-new 【免费下载链接】MediaCrawler-new 项目地址: https://gitcode.com/GitHub_Trending/me/MediaCrawler-new

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值