Python time模块时间戳与字符串转换详解及13位时间戳生成

小岛来信
小岛来信
发布时间:2026-10-13 | 6人浏览过
原创

本文详解Python中time模块的核心功能,包括10位与13位时间戳的生成与转换、时间字符串与时间元组的互操作。通过提供now_to_timestamp、timestamp_to_date等实用函数示例,展示如何灵活处理不同格式的时间数据,满足开发中对时间精度的多样化需求。

Python time模块简介

在Python中处理时间与时间戳,主要依赖内置的time和datetime两个模块。本文重点介绍time模块的具体用法。

时间戳基础概念解析

理解时间戳相关的基础概念

时间戳是指自1970年1月1日00:00:00起所经过的秒数偏移量。

时间元组(struct_time)由9个元素组成,用于表示具体的时间信息。


time.struct_time(tm_year=2017, tm_mon=10, tm_mday=1, tm_hour=14, tm_min=21, tm_sec=57, tm_wday=6, tm_yday=274, tm_isdst=0) 

时间格式字符串是指以特定字符串形式表示的时间数据。

time模块核心函数说明

time模块中涉及时间戳和时间处理的关键函数

time.time()用于获取当前时间戳,返回值为10位整数的浮点数。

time.strftime()依据时间元组生成格式化的时间字符串。

time.strptime()依据格式化的时间字符串生成时间元组。这两个函数互为逆操作。

time.localtime()根据给定的时间戳,生成当前时区下的时间元组。

time.mktime()根据提供的时间元组,生成对应的时间戳。

时间处理代码示例与实验结果

代码示例

以下是关于时间戳与格式化字符串转换的简单示例代码。


import time

#生成当前时间的时间戳,只有一个参数即时间戳的位数,默认为10位,输入位数即生成相应位数的时间戳,比如可以生成常用的13位时间戳
def now_to_timestamp(digits = 10):
 time_stamp = time.time()
 digits = 10 ** (digits -10)
 time_stamp = int(round(time_stamp*digits))
 return time_stamp

#将时间戳规范为10位时间戳
def timestamp_to_timestamp10(time_stamp):
 time_stamp = int (time_stamp* (10 ** (10-len(str(time_stamp)))))
 return time_stamp

#将当前时间转换为时间字符串,默认为2017-10-01 13:37:04格式
def now_to_date(format_string="%Y-%m-%d %H:%M:%S"):
 time_stamp = int(time.time())
 time_array = time.localtime(time_stamp)
 str_date = time.strftime(format_string, time_array)
 return str_date

#将10位时间戳转换为时间字符串,默认为2017-10-01 13:37:04格式
def timestamp_to_date(time_stamp, format_string="%Y-%m-%d %H:%M:%S"):
 time_array = time.localtime(time_stamp)
 str_date = time.strftime(format_string, time_array)
 return str_date

#将时间字符串转换为10位时间戳,时间字符串默认为2017-10-01 13:37:04格式
def date_to_timestamp(date, format_string="%Y-%m-%d %H:%M:%S"):
 time_array = time.strptime(date, format_string)
 time_stamp = int(time.mktime(time_array))
 return time_stamp

#不同时间格式字符串的转换
def date_style_transfomation(date, format_string1="%Y-%m-%d %H:%M:%S",format_string2="%Y-%m-%d %H-%M-%S"):
 time_array = time.strptime(date, format_string1)
 str_date = time.strftime(format_string2, time_array)
 return str_date

实验运行


print(now_to_date())
print(timestamp_to_date(1506816572))
print(date_to_timestamp('2017-10-01 08:09:32'))
print(timestamp_to_timestamp10(1506816572546))
print(date_style_transfomation('2017-10-01 08:09:32'))

运行结果如下所示


1506836224000
2017-10-01 13:37:04
2017-10-01 08:09:32
1506816572
1506816572
2017-10-01 08-09-32

以上就是关于Python time模块中时间戳生成、时间字符串格式化及转换方法的完整介绍,特别是针对13位时间戳的处理。希望这些内容能为您提供参考,欢迎继续支持本站获取更多技术分享。

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表