Python如何把时间字符串转换为时间戳

Python如何把时间字符串转换为时间戳

作者:William Gu发布时间:2026-01-14阅读时长:0 分钟阅读次数:4

用户关注问题

Q
如何将格式化的时间字符串转换成时间戳?

我有一个类似于'2023-06-01 12:00:00'的时间字符串,想要转换为时间戳,应使用哪些Python函数?

A

使用strptime和mktime实现时间字符串转换

可以先利用datetime模块的strptime函数将时间字符串解析成datetime对象,然后调用time模块的mktime函数将其转换为时间戳。例如:

import time
from datetime import datetime

time_str = '2023-06-01 12:00:00'
# 解析字符串
dt_obj = datetime.strptime(time_str, '%Y-%m-%d %H:%M:%S')
# 转换为时间戳
timestamp = int(time.mktime(dt_obj.timetuple()))
print(timestamp)
Q
如何处理不同时区的时间字符串转换为时间戳?

如果时间字符串包含时区信息,怎么在Python中正确转换为时间戳?

A

使用datetime和pytz处理含时区的时间字符串

Python内置的datetime模块处理时区相对有限,可以配合pytz库来正确转换含时区的时间字符串。首先解析字符串,然后利用pytz设置对应时区,最后使用timestamp()方法得到时间戳。例如:

from datetime import datetime
import pytz

time_str = '2023-06-01 12:00:00'
timezone = pytz.timezone('Asia/Shanghai')
dt_naive = datetime.strptime(time_str, '%Y-%m-%d %H:%M:%S')
dt_aware = timezone.localize(dt_naive)
timestamp = int(dt_aware.timestamp())
print(timestamp)
Q
转换时间字符串为时间戳时,常见错误有哪些?

我在转换时间字符串为时间戳时遇到ValueError或结果不正确,这通常是什么原因导致的?

A

时间格式不匹配和时区处理不当是常见错误根源

ValueError常因时间字符串格式与strptime指定的格式不符导致。确保格式字符串精确匹配时间字符串。另外忽略时区信息或者时区处理错误会让时间戳结果偏差。建议确认时间格式和时区信息均被正确处理。