time和datatime模块

Time模块

在Python中,通常有这几种方式来表示时间:

  • 时间戳(timestamp):通常来说,时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量。我们运行“type(time.time())”,返回的是float类型。
  • 格式化的时间字符串(Format String)
  • 结构化的时间(struct_time):struct_time元组共有9个元素共九个元素:(年,月,日,时,分,秒,一年中第几周,一年中第几天,夏令时)

 

先以当前时间为准,快速认识三种形式的时间

import time

print(time.time()) # 时间戳:1552379622.9565196

print(time.strftime("%Y-%m-%d %X")) #格式化的时间字符串:'2019-03-12 16:33:42' print(time.localtime()) #本地时区的struct_time。time.struct_time(tm_year=2019, tm_mon=3, tm_mday=12, tm_hour=16, tm_min=33, tm_sec=42, tm_wday=1, tm_yday=71, tm_isdst=0)


print(time.gmtime()) #UTC时区的struct_time。time.struct_time(tm_year=2019, tm_mon=3, tm_mday=12, tm_hour=8, tm_min=33, tm_sec=42, tm_wday=1, tm_yday=71, tm_isdst=0)

 

 

其中计算机认识的时间只能是'时间戳'格式,而程序员可处理的或者说人类能看懂的时间有: '格式化的时间字符串','结构化的时间' ,于是有了下图的转换关系

                

 

将结构化时间转换为时间戳
import time 
print(time.mktime(time.localtime()))

 

将结构化时间转换成字符串时间

import time
print(time.strftime('%Y-%m-%d %X', time.localtime()))

 

将字符串时间转换成结构化时间

import time 
print(time.strptime('2019:3:8:9:40:0', '%Y:%m:%d:%X'))

 

                        

将结构化时间转换成固定字符串时间

import time
print(asctime())
#asctime默认参数为time.time()

 

 将时间戳转换成固定字符串时间

import time
print(ctime())
#ctime()的默认参数为time.time()

 

 

 

 

datatime模块

import datetime
import time

print(datetime.datetime.now()) #返回 2019-03-13 14:37:07.018817
print(datetime.date.fromtimestamp(time.time()))  # 时间戳直接转成日期格式 2019-03-13

#时间加减
print(datetime.datetime.now() + datetime.timedelta(3)) #当前时间+3天
print(datetime.datetime.now() + datetime.timedelta(-3)) #当前时间-3天
print(datetime.datetime.now() + datetime.timedelta(hours=3)) #当前时间+3小时
print(datetime.datetime.now() + datetime.timedelta(minutes=30)) #当前时间+30分

 

posted @ 2019-03-13 14:43  sword23  阅读(137)  评论(0编辑  收藏  举报