import time
# strftime获取当前系统格式化时间,%X和%H:%M:%S相等
print(time.strftime("%Y-%m-%d %H:%M:%S"))
print(time.strftime("%Y-%m-%d %X"))
print(type(time.strftime("%Y-%m-%d %H:%M:%S")))
2019-11-27 22:00:14
2019-11-27 22:00:14
<class 'str'>
import time
# 查看系统时间,拿到的是一个数字(时间戳),从1970-01-01 00:00:00开始计算,以秒为单位
# 这里需要知道中国的时间是UTC+8,也就是东八区,当开始计数的时候,中国已经经历的8个小时。
print(time.time())
print(type(time.time()))
1574863230.2989101
<class 'float'>
import time
# 一年365天,一天24小时,一小时60分钟,一分钟60秒,一年是365*24*60*60=31536000秒,计算从1970-01-01到现在经过了多少年?
print(time.time()/31536000)
49.93856116571959
import time
# sleep让程序睡几秒,计算程序一共使用了多少秒?
start_time = time.time()
time.sleep(2)
end_time = time.time()
print(end_time - start_time)
2.0001142024993896
import time
# localtime获取当前系统(东八区)的结构化时间(常用)
print(time.localtime())
print(type(time.localtime()))
# gmtime获取UTC(零时区)的结构化时间(不常用)
print(time.gmtime())
print(type(time.gmtime()))
time.struct_time(tm_year=2019, tm_mon=11, tm_mday=27, tm_hour=22, tm_min=11, tm_sec=13, tm_wday=2, tm_yday=331, tm_isdst=0)
<class 'time.struct_time'>
time.struct_time(tm_year=2019, tm_mon=11, tm_mday=27, tm_hour=14, tm_min=11, tm_sec=13, tm_wday=2, tm_yday=331, tm_isdst=0)
<class 'time.struct_time'>
import time
# localtime将指定的时间戳转换为结构化时间
n = 31536000
print(time.localtime(n))
print(type(time.localtime(n)))
time.struct_time(tm_year=1971, tm_mon=1, tm_mday=1, tm_hour=8, tm_min=0, tm_sec=0, tm_wday=4, tm_yday=1, tm_isdst=0)
<class 'time.struct_time'>
import time
# strftime将结构化时间转换为格式化时间
n = 31536000
struct_time = time.localtime(n)
date_time = time.strftime("%Y-%m-%d %H:%M:%S", struct_time)
print(date_time)
print(type(date_time))
1971-01-01 08:00:00
<class 'str'>
import time
# mktime将格式化时间转化为时间戳:字符串-》结构化时间-》时间戳
struct_time = time.strptime("2019-11-22 12:13:14", "%Y-%m-%d %H:%M:%S")
print(time.mktime(struct_time))
print(type(time.mktime(struct_time)))
1574395994.0
<class 'float'>
'''
时间戳转化成格式化时间 strftime -- format
1.把时间戳转化为结构化时间
2.把结构化时间转化为格式化时间
'''
n = 10000000
struct_time = time.localtime(n)
print(struct_time)
print(time.strftime("%Y-%m-%d %H:%M:%S", struct_time))
time.struct_time(tm_year=1970, tm_mon=4, tm_mday=27, tm_hour=1, tm_min=46, tm_sec=40, tm_wday=0, tm_yday=117, tm_isdst=0)
1970-04-27 01:46:40
'''
把字符串转化为数字(时间戳)strptime -- parse
1.把字符串转化为结构化时间
2.把结构化时间转化为时间戳
'''
s = input("请输入一个时间(%Y-%m-%d %H:%M:%S):")
struct_time = time.strptime(s, "%Y-%m-%d %H:%M:%S") # p:parse
print(struct_time)
print(time.mktime(struct_time))
请输入一个时间(%Y-%m-%d %H:%M:%S):2018-1-2 12:2:4
time.struct_time(tm_year=2018, tm_mon=1, tm_mday=2, tm_hour=12, tm_min=2, tm_sec=4, tm_wday=1, tm_yday=2, tm_isdst=-1)
1514865724.0
'''比计较两个时间相差多少小时多少分钟'''
s1 = "1989-01-02 12:00:00"
s2 = "1989-01-01 14:35:00"
n1 = time.mktime(time.strptime(s1, "%Y-%m-%d %H:%M:%S"))
n2 = time.mktime(time.strptime(s2, "%Y-%m-%d %H:%M:%S"))
dif_hour, dif_second = divmod(abs(n1-n2), 60*60)
dif_min = dif_second//60
print("两个时间相差%d小时%d分钟" % (dif_hour, dif_min))
两个时间相差21小时25分钟
'''日期格式化的标准
%y 两位数的年份表示(00-99)
%Y 四位数的年份表示(0000-9999)
%m 月份(01-12)
%d 月内中的一天(0-31)
%H 24小时制小时数(0-23)
%I 12小时制小时数(01-12)
%M 分钟数(00-59)
%S 秒(00-59)
%a 本地简化星期名称
%A 本地完整星期名称
%b 本地简化的月份名称
%B 本地完整的月份名称
%c 本地相应的日期表示和时间表示
%j 年内的一天(001-366)
%p 本地A.M.或P.M.的等价符
%U 一年中的星期数(00-53)星期天为星期的开始
%x 本地相应的日期表示
%X 本地相应的时间表示
%Z 当前时区的名称
%% %号本身
'''