python

关注公众号 jb51net

关闭
首页 > 脚本专栏 > python > Python生成时间戳

Python中生成13位时间戳的常见方法

作者:detayun

这篇文章主要为大家详细介绍了Python中生成13位时间戳的常见方法,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下

在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_with_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}")

关键说明

1.精度说明

13位时间戳精度为毫秒,10位为秒级。1762240149800表示从1970-01-01 00:00:00 UTC开始经过的毫秒数。

2.时区处理

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)

注意事项:

时间戳的精度

时区问题

跨平台兼容性

这些方法在Windows、Linux和macOS上都能正常工作

大数处理

对于非常大的时间戳(如超过32位整数范围),确保使用Python 3的int类型

完整示例代码

import time
import datetime

def get_timestamps():
    # 获取当前时间戳
    now = datetime.datetime.now()
    
    # 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生成时间戳内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文