ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

Python_time库_特定字符串格式的时间、struct_time、时间戳的处理

2022-02-26 20:31:33  阅读:151  来源: 互联网

标签:01 struct Python 30 tm 时间 time


time库

时间戳:格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数。

几个常用函数

time.strptime(),功能:将特定字符串格式的时间,转换为struct_time。
time.strftime(),功能:将struct_time,转换为特定字符串格式的时间。


time.time(),功能:将当前时间转换为时间戳。
time.mktime(),功能:将struct_time转换为时间戳,输入当地struct_time,输出格林威治时间戳。


time.localtime(),功能:将时间戳转换为struct_time(当地时间)。
time.gmtime(),功能:将时间戳转换为struct_time(格林威治时间)。
localtime与gmtime两者关系:例如,localtime北京时间 = gmtime格林威治时间 + 8小时


特定字符串格式的时间 <=> struct_time <=> 时间戳


import time

# 1. 特定字符串格式的时间 -> struct_time -> 时间戳
time_1 = "2000-01-01 14:30:30"
time_2 = time.strptime(time_1, '%Y-%m-%d %H:%M:%S')
time_2
# time.struct_time(tm_year=2000, tm_mon=1, tm_mday=1, tm_hour=14, tm_min=30, tm_sec=30, tm_wday=5, tm_yday=1, tm_isdst=-1)
time_3 = time.mktime(time_2)
time_3
# 946708230.0

# 2. 时间戳 -> struct_time -> 特定字符串格式的时间
time_3 = 946708230.0
time_4 = time.gmtime(time_3)
time_4
# time.struct_time(tm_year=2000, tm_mon=1, tm_mday=1, tm_hour=6, tm_min=30, tm_sec=30, tm_wday=5, tm_yday=1, tm_isdst=0)
time_5 = time.strftime('%Y-%m-%d %H:%M:%S', time_4)
time_5
# '2000-01-01 06:30:30'
type(time_5)
# str

# 注意:此时time_1和time_5已经不一致了,相差了8个小时,原因在time.mktime()函数上。time.mktime()输入的是当地struct_time,输出的是格林威治时间戳。

# 3. 将格林威治时间戳转换为格林威治时间和本地时区时间
# 获取一个当前时间戳
times = time.time()
# 将一个时间戳格式化为格林威治时间
gmtimes_before = time.gmtime(times)
gmtimes_before
# time.struct_time(tm_year=2022, tm_mon=2, tm_mday=26, tm_hour=12, tm_min=1, tm_sec=30, tm_wday=5, tm_yday=57, tm_isdst=0)
gmtimes = time.strftime("%Y-%m-%d %H:%M:%S", gmtimes_before)
gmtimes
# '2022-02-26 12:01:51'

# 将一个时间戳格式化为本地时区时间
mytimes_before = time.localtime(times)
mytimes_before
# time.struct_time(tm_year=2022, tm_mon=2, tm_mday=26, tm_hour=20, tm_min=4, tm_sec=30, tm_wday=5, tm_yday=57, tm_isdst=0)
mytimes = time.strftime("%Y-%m-%d %H:%M:%S", mytimes_before)
mytimes
# '2022-02-26 20:04:46'

# 4. pd.Timestamp()
# 以秒为单位转换表示Unix纪元的浮点数
pd.Timestamp(1513393355, unit='s')
# Timestamp('2019-12-16 03:02:35')

标签:01,struct,Python,30,tm,时间,time
来源: https://www.cnblogs.com/Arie-Zhang/p/12559414.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有