time()
python的时间模块
- 时间戳:
- 给电脑看的、1970-01-01 00:00:00到当前时间,按秒计算
- 格式化时间(Format String):
- 给人看的、返回的是时间的字符串 '2019-11-16 14:20:42'
- 格式化时间对象(struct_time):
- 返回的是一个元组,元组中有9个值
- 年,月,日,时,分,秒,一周中的第几天,一年中的第几天,夏令时
- 返回的是一个元组,元组中有9个值
1、时间戳 (time.time()
)
print(time.time())
#1573885583.36139
2、获取格式化时间 (time.strftime()
)
print(time.strftime('%Y-%m-%d %H:%M:%S')) #%X == %H:%M:%S
2019-11-16 14:27:43
3、获取时间对象 (time.locatime()
)
t = time.localtime()
print(t.tm_year)
print(t.tm_mon)
print(t.tm_mday)
2019
11
16
strftime()不带参数默认当前时间
print(time.strftime('%Y-%m-%d %H:%M:%S', time.localtime()))
#2019-11-16 14:39:43
print( time.strptime('2019-01-01', '%Y-%m-%d'))
#time.struct_time(tm_year=2019, tm_mon=1, tm_mday=1, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=1, tm_yday=1, tm_isdst=-1)
- 测量时间:
perf_counter()
- 产生时间:
sleep()
函数 | 描述 |
---|---|
perf_counter() |
返回一个CPU几遍的精确时间计数值,单位为秒;由于这个计数值起点不确定,连续调用差值才有意义 |
start_time = time.perf_counter() #精确开始时间
end_time = time.perf_counter() #精确结束时间
restime = end_time - start_time
函数 | 描述 |
---|---|
sleep(s) |
s拟休眠的时间,单位是秒,可以是浮点数 |
datetime()
主要用于日期时间计算
获取当前年月日
from datetime import datetime, timedelta
print(datetime.today().date())
#2019-11-16
获取当前 年月日时分秒
import datetime
print(datetime.datetime.today())
#2019-11-16 14:49:02.755061
t = datetime.datetime.today()
print(t.year)
print(t.month)
#2019
#11
print(datetime.datetime.now()) #北京时间
print(datetime.datetime.utcnow()) #格林威治
#2019-11-16 14:52:58.447166
#2019-11-16 06:52:58.447166
日期时间的计算
上一天
from datetime import datetime, timedelta
(datetime.today()-timedelta(days=1)).date()
# (datetime.today()-timedelta(days=1)).day
日期时间 = 日期时间 “+” or “-” 时间对象
时间对象 = 日期时间 “+” or “-” 日期时间
datetime.timedelta(day=7)
时间对象
current_time = datetime.datetime.now() #获取现在时间
print(current_time)
time_obj = datetime.timedelta(days=7) #时间对象,获取7天时间
print(time_obj)
later_time = current_time + time_obj #获取7天后的时间,加上7天
print(later_time)
before = current_time - time_obj #获取7天之前的时间,减上7天
print(before)
时间戳转时间格式
import time
time_stamp = 1606492000
time_array = time.localtime(int(time_stamp))
date_array = time.strftime('%Y-%m-%d %X', time_array)
# time.strftime('%Y-%m-%d %X', time.localtime(int(submit_time))) # 便捷
print(date_array)
时间格式转时间戳
import time
t1 = '2020-12-16 11:40:52'
time_array = time.strptime(t1, '%Y-%m-%d %X')
time_stamp = int(time.mktime(time_array))
print(time_stamp)
int(time.mktime(time.strptime(import_task_time, '%Y-%m-%d %X'))) # 便捷
def datetimeTOstamp(self, datetime): # 时间格式转时间戳
if not datetime:
return
if len(datetime) < 16:
time_array = time.strptime(datetime, '%Y-%m-%d')
return int(time.mktime(time_array))
time_array = time.strptime(datetime, '%Y-%m-%d %X')
return int(time.mktime(time_array))
def stampTOdatetime(self, stamp): # 时间戳转时间格式
time_array = time.localtime(int(stamp))
return time.strftime('%Y-%m-%d %X', time_array)
两个时间相减
(datetime.strptime(end_time, "%Y-%m-%d") - datetime.strptime(start_time, "%Y-%m-%d")).days