什么是时间元组?
很多Python函数用一个元组装起来的9组数字处理时间:
序号 | 字段 | 值 |
---|---|---|
0 | 4位数年 | 2008 |
1 | 月 | 1 到 12 |
2 | 日 | 1到31 |
3 | 小时 | 0到23 |
4 | 分钟 | 0到59 |
5 | 秒 | 0到61 (60或61 是闰秒) |
6 | 一周的第几日 | 0到6 (0是周一) |
7 | 一年的第几日 | 1到366 (儒略历) |
8 | 夏令时 | -1, 0, 1, -1是决定是否为夏令时的旗帜 |
上述也就是struct_time元组。这种结构具有如下属性:
序号 | 属性 | 值 |
---|---|---|
0 | tm_year | 2008 |
1 | tm_mon | 1 到 12 |
2 | tm_mday | 1 到 31 |
3 | tm_hour | 0 到 23 |
4 | tm_min | 0 到 59 |
5 | tm_sec | 0 到 61 (60或61 是闰秒) |
6 | tm_wday | 0到6 (0是周一) |
7 | tm_yday | 1 到 366(儒略历) |
8 | tm_isdst | -1, 0, 1, -1是决定是否为夏令时的旗帜 |
# 获取两个代码位置在执行时的时间差
import time
def func1(x):
y=x+1
time.sleep(2)
return y
# time.time() 会返回 从 1970年1月1日0点到 当前时间的 经过的秒数 ,可以简称为秒数时间
before= time.time()
func1(5)
after=time.time()
"""
Python3.6新增了一种f-字符串格式化
格式化的字符串文字前缀为’f’和接受的格式字符串相似str.format()。
以 f 开头,包含的{}表达式在程序运行时会被表达式的值代替。
"""
print(f"调用func1,花费时间{after-before}")
from datetime import datetime
# datetime.now()获取当前时间
print(str(datetime.now()))
# 2020-10-08 22:20:30.986089
print(datetime.now())
# 2020-10-08 22:20:30.986089
# 获取当前时间后,用strftime()函数指定格式输出
print(datetime.now().strftime('%Y-%m-%d**%H:%M:%S'))
# 2020-10-08**22:20:30
#获取当前时间,用strftime()函数指定格式输出
print(time.strftime("%Y-%m-%d**%H:%M:%S"))
# 2020-10-08**22:20:30
#import time
# % 操作符只能直接用于字符串,列表、元组的替换,
# time.localtime()获取的是struct_time对象
#print("time.localtime() : %s" % time.localtime()) # %和后面的参数数量不对应,会报错
print("time.localtime() : %s" % (time.localtime(),)) #time.localtime()改为元组或者列表就好
# time.localtime() : time.struct_time(tm_year=2020, tm_mon=10, tm_mday=8, tm_hour=22, tm_min=20, tm_sec=30, tm_wday=3, tm_yday=282, tm_isdst=0)
print("time.localtime() : %s" % [time.localtime()])
#将struct_time时间转化为字符串时间
print(time.strftime('%Y-%m-%d %H-%M-%S', time.localtime()))
# 2020-10-08 22-20-30
# 如果要将某个指定秒数时间,而不是当前时间,转化为字符串格式,可以这样写
print( time.strftime('%Y%m%d %H:%M:%S',time.localtime(1434502529)) )
#将字符串格式的时间转化为秒数时间
print(time.mktime(time.strptime('2020-10-08 22:15:36', '%Y-%m-%d %H:%M:%S')))