time模块
在python中,时间一共有三种形式:
1.时间戳 给机器看的 时间戳是以浮点数的形式显示,以1970-01-01 00:00:00为原点,慢慢往后加数形成的
2.格式化时间 给人看的
3.结构化时间 用来计算的
import time print(time.time()) # 1553992174.0139978 时间戳,有时候数据库中存的就是时间戳 #时间戳是以1970-01-01 00:00:00为原点 每一秒一个数字形成的 类似于数轴 #格式化时间 给人看的 print(time.strftime("%Y-%m-%d %H:%M:%S")) #%Y-%m-%d %H:%M:%S 显示时间的格式 #结构化时间 用来计算的xx print(time.localtime())
格式化时间是,我们可以采取不从的格式让时间显示不同的样式,下边是日期格式化的标准,我们可以根据这些标准来自定义我们的格式化时间
"""日期格式化的标准: %y 两位数的年年份表示(00-99) %Y 四位数的年年份表示(000-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)星期天为星期的开始 %w 星期(0-6),星期天为星期的开始 %W ⼀一年年中的星期数(00-53)星期⼀一为星期的开始 %x 本地相应的⽇日期表示 %X 本地相应的时间表示 %Z 当前时区的名称 %% %号本身 """
另外,我们再往数据库中存入的是时间戳,可是我们从数据库中拿出来看到的想要是时间,那要求我们会格式化时间与时间戳的相互转化
1.时间戳转化为格式化时间
f = 11212156.323 st = time.localtime(f) #把时间戳转化为结构化时间 t = time.strftime("%Y-%m-%d %H:%M:%S",st) #把结构化时间转化为格式化时间 print(t)
运行结果:
1970-05-11 02:29:16
2.格式化时间转化为时间戳
import time t = "1970-05-11 02:29:16" st = time.strptime(t,"%Y-%m-%d %H:%M:%S") #把格式化时间转化为结构化时间 f = time.mktime(st) #把结构化世间转化为时间戳 print(f)
运行结果:
11212156.0
我们发现,不管是要将格式化时间转化为时间戳,还是要将时间戳转化为格式化时间,一定要经过转化为结构化时间这一步,我们可以这样理解,结构化时间是格式化时间与时间戳之间相互转化的桥梁