时间如何转为时间戳python

时间如何转为时间戳python

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

用户关注问题

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

我有一个字符串格式的时间,比如'2024-06-01 12:30:45',用Python该怎样把它转换成时间戳?

A

使用 datetime 模块的 strptime 和 timestamp 方法

你可以使用 Python 的 datetime 模块将字符串时间先解析为 datetime 对象,然后再转换成时间戳。例如,使用 datetime.strptime() 方法解析字符串时间,再调用 timestamp() 方法即可得到时间戳。示例代码:

from datetime import datetime

time_str = '2024-06-01 12:30:45'
dt = datetime.strptime(time_str, '%Y-%m-%d %H:%M:%S')
timestamp = dt.timestamp()
print(timestamp)
Q
在Python中如何兼容处理不同格式的时间字符串转换为时间戳?

当输入的时间字符串格式不固定,比如有时带毫秒有时没有,Python应如何灵活转换成时间戳?

A

自定义解析时间字符串后转换时间戳

可以根据不同时间格式写条件判断,使用 datetime.strptime 根据具体格式解析时间字符串,解析完成后调用 timestamp 方法转换。也可以使用第三方库 dateutil.parser 自动识别时间格式。示例使用 dateutil:

from dateutil import parser
import datetime

time_str = '2024-06-01T12:30:45.123'
dt = parser.parse(time_str)
timestamp = dt.timestamp()
print(timestamp)
Q
Python 时间戳转换是否受时区影响?

将时间转换成时间戳时,时区会不会影响结果?我该如何处理时区问题?

A

时区会影响时间戳的转换,需要处理时区信息

时间戳通常是指自1970年1月1日UTC时间以来的秒数。如果 datetime 对象没有时区信息,会被当作本地时间处理,导致timestamp结果受本地时区影响。建议在转换前确保 datetime 对象是带时区信息的(例如UTC时区),使用 pytz 或 datetime.timezone 来指定时区。例如:

from datetime import datetime, timezone

time_str = '2024-06-01 12:30:45'
dt = datetime.strptime(time_str, '%Y-%m-%d %H:%M:%S')
dt = dt.replace(tzinfo=timezone.utc)
timestamp = dt.timestamp()
print(timestamp)