Python中如何将带时分秒的当前日期时间转换为时间戳
Python实现可读日期格式转Unix时间戳的方法
你可以直接使用Python标准库的datetime模块完成转换,无需安装第三方依赖,转换逻辑如下:
转换指定格式的日期字符串为时间戳
你给出的日期格式对应的解析模板为%A, %d %B %Y %H:%M:%S,其中:
%A匹配星期的完整英文名称%d匹配两位数字的日期%B匹配月份的完整英文名称%Y匹配四位数字的年份%H:%M:%S匹配24小时制的时分秒
示例代码如下:
from datetime import datetime, timezone def date_str_to_epoch(date_str: str) -> int: date_format = "%A, %d %B %Y %H:%M:%S" # 按UTC时区解析时间,和你给出的示例结果对齐 dt_obj = datetime.strptime(date_str, date_format).replace(tzinfo=timezone.utc) # 转换为秒级Unix时间戳 return int(dt_obj.timestamp()) # 测试示例 print(date_str_to_epoch("Thursday, 18 November 2021 23:59:59")) # 输出:1637279999 print(date_str_to_epoch("Thursday, 18 November 2021 00:00:00")) # 输出:1637193600
转换当前日期时间为时间戳
如果需要转换当前带时分秒的时间为时间戳,可以直接调用如下代码:
from datetime import datetime, timezone # 获取当前UTC时间的秒级时间戳 current_epoch = int(datetime.now(timezone.utc).timestamp()) print(current_epoch) # 如果需要先获取对应格式的当前时间字符串再转换 current_date_str = datetime.now(timezone.utc).strftime("%A, %d %B %Y %H:%M:%S") print(current_date_str) print(date_str_to_epoch(current_date_str))
注意事项
- 如果你处理的是本地时区的时间,去掉代码中的
.replace(tzinfo=timezone.utc)即可,但要注意不同时区转换得到的时间戳会存在时差,你给出的示例结果为UTC时区转换结果,建议保留时区设置避免误差。 - 上述代码返回的是秒级时间戳,如果你需要毫秒级时间戳,将返回值乘以1000即可。
内容的提问来源于stack exchange,提问作者Mayur Koshti
相关产品推荐
相关产品推荐

