目录
- 基础方法(推荐)
- 时区敏感型方法
- UTC时间方法
- 关键说明
- 方法扩展
- 注意事项
- 时间戳转换示例
在python中生成13位毫秒级时间戳(Unix时间戳)可通过以下方法实现:
基础方法(推荐)
import time
timestamp_13 = int(time.time() * 1000)
print(f"13位时间戳: {timestamp_13}")
# 示例输出:1762240149800
时区敏感型方法
from datetime import datetime
import time
# 获取当前时间(带时区信息)
now_with_tz = datetime.now().astimezone()
timestamp_13 = int(now_whttp://www.devze.comith_tz.timestamp() * 1000)
print(f"带时区的13位时间戳: {timestamp_13}")
UTC时间方法
from datetime import datetime
utc_now = datetime.utcnow()
timestamp_13 = int(utc_now.timestamp() * 1000)
print(f"UTC时间的13位时间戳: {timestamp_13}")
关键js说明
1.精度说明
13位时间戳精度为毫秒,10位为秒级。1762240149800表示从1970-01-01 00:00:00 UTC开始经过的毫秒数。
2.时区处理
time.time()返回UTC时间戳(与系统时区无关)- 带时区的方法适用于需要明确时区信息的场景
3.性能对比
import timeit
# 基础方法性能
timeit.timeit('int(time.time()*1000)', number=1000000, globals=globals())
# 输出约0.2秒(100万次调用)
方法扩展
Python中获取13位和10位时间戳的方法
1. 获取当前时间戳
13位时间戳(毫秒级)
import time
import datetime
# 方法1:使用time模块
timestamp_13_1 = int(time.time() * 1000)
print("13位时间戳(方法1):", timestamp_13_1)
# 方法2:使用datetime模块
timestamp_13_2 = int(datetime.datetime.now().timestamp() * 1000)
print("13位时间戳(方法2):", timestamp_13_2)
10位时间戳(秒级)
# 方法1:使用time模块
timestamp_10_1 = int(time.time())
print("10位时间戳(方法1):", timestamp_10_1)
# 方法2:使用datetime模块
timestamp_10_2 = int(datetime.datetime.now().timestamp())
print("10位时间戳(方法2):", timestamp_10_2)
2. 将时间戳转换为可读时间
# 13位时间戳转可读时间
timestamp_13 = int(time.time() * 1000)
readable_time_13 = datetime.datetime.fromtimestamp(timestamp_13 / 1000).strftime('%Y-%m-%d %H:%M:%S.%f')
print("13位时间戳转可读时间:", readable_time_13)
# 10位时间戳转可读时间
timestamp_10 = int(time.time())
readable_time_10 = datetime.datetime.fromtimestamp(timestamp_10).strftime('%Y-%m-%d %H:%M:%S')
print("10位时间戳转可读时间:", readable_time_10)
3. 将日期字符串转换为时间戳
from datetime import datetime
date_str = "2023-01-01 12:00:00"
# 转换为10位时间戳(秒级)
timestamp_10 = int(datetime.strptime(date_str, "%Y-%m-%d %H:%M:%S").timestamp())
print("日期字符串转10位时间戳:", timestamp_10)
# 转换为13位时间戳(毫秒级)
timestamp_13 = int(datetime.strptime(date_str, "%Y-%m-%d %H:%M:%S").timestamp() * 1000)
print("日期字符串转13位时间戳:", timestamp_13)
注意事项:
时间戳的精度:
- 10位时间戳表示秒级精度
- 13位时间戳表示毫秒级精度
时区问题:
- Python的
time.time()和datetime.now()返回的是本地时间 - 如果需要UTC时间,可以使用
datetime.datetime.utcnow()
跨平台兼容性:
这些方法在Windows、linux和MACOS上都能正常工作
大数处理:
对于非常大的时间戳(如超过32位整数范围),确保使用Pytho编程客栈n 3的int类型
完整示例代码
import time
import datetime
def get_timestamps():
# 获取当前时间戳
now = datetime.datetime.nphpow()
# 13位时间戳(毫秒级)
timestamp_13 = int(now.timestamp() * 1000)
# 10位时间戳(秒级)
timestamp_10 = int(now.timestamp())
# 转换为可读时间
readable_13 = now.strftime('%Y-%m-%d %H:%M:%S.%f')
readable_10 = now.strftime('%Y-%m-%d %H:%M:%S')
print(f"当前时间: {now}")
print(f"13位时间戳: {timestamp_13}")
print(f"10位时间戳: {timestamp_10}")
print(f"13位时间戳对应时间: {readable_13}")
print(f"10位时间戳对应时间: {readable_10}")
# 示例:将日期字符串转换为时间戳
date_str = "2023-01-01 12:00:00"
dt = datetime.datetime.strptime(date_str, "%Y-%m-%d %H:%M:%S")
print(f"\n日期字符串 '{date_str}' 转换为:")
print(f"10位时间戳: {int(dt.timestamp())}")
print(f"13位时间戳: {int(dt.timestamp() * 1000)}")
if __name__ == "__main__":
get_timestamps()
运行这段代码将输出当前时间的时间戳以及如何将日期字符串转换为时间戳的示例。
注意事项
跨平台兼容性:所有方法均兼容Windows/Linux/macOS
时间精度:系统时间精度可能影响最后几位数字
闰秒处理:时间戳计算不包含闰秒调整
时间戳转换示例
import datetime
# 转换回可读时间
def timestamp_to_str(timestamp_13):
dt = datetime.datetime.utcfromtimestamp(timestamp_13 / 1000)
return dt.strftime("%Y-%m-%d %H:%M:%S.%f")[:-3]
print(timestamp_to_str(1762240149800))
# 输出:2025-11-04 14:02:29.800
这些方法覆盖了从基础到进阶的时间戳处理需求,可根据具体场景选择最适合的方案。
到此这篇关于Python中生成13位时间戳的常见方法的文章就介绍到这了,更多相关Python生成时间戳内容请搜索编程客栈(www.devze.com)以前的文章或继续浏览下面的相关文章希望android大家以后多多支持编程客栈(www.devze.com)!
加载中,请稍侯......
精彩评论