time和datetime模块

一、time模块

time模块中时间表现的格式主要有三种:
  a、timestamp时间戳,时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量
  b、struct_time时间元组,共有九个元素组。
  c、format time 格式化时间,已格式化的结构使时间更具可读性。包括自定义格式和固定格式。
时间格式转换图:


time和datetime模块_第1张图片
import time,datetime
time.localtime()    # 返回本地时间 的struct time对象格式
time.gmtime()      # 返回utc 的struct time对象格式
#不写参数表示返回当前的struct time对象,输入一个时间戳参数:time.localtime(string_2_stamp)  时间戳--> 时间对象

time.asctime(time.localtime())  #接收struct time对象参数
time.ctime()
#返回"Fri Aug 19 11:14:16 2016"时间格式

#日期字符串--> 时间戳
s="2017/3/24 20:47"
string_2_struct=time.strptime(s,"%Y/%m/%d %H:%M") #日期字符串--> 时间对象
print(string_2_struct)
string_2_stamp=time.mktime(string_2_struct) #时间对象--> 时间戳
print(string_2_stamp)

#时间戳--> 字符串
t1=time.localtime(string_2_stamp)  #时间戳--> 时间对象
t1_2_string=time.strftime("%Y_%m_%d_%H_%M",t1) #时间对象--> 字符串
print(t1_2_string)

二、datetime模块

datatime模块重新封装了time模块,提供更多接口,提供的类有:date,time,datetime,timedelta,tzinfo。

时间加减

datetime.datetime.now()   #返回当前本地时间的datetime对象
datetime.fromtimestamp(time_stamp)  #时间戳转化成datetime对象
print(datetime.datetime.now()+datetime.timedelta(days=3))        #当前时间+3天
print(datetime.datetime.now()+datetime.timedelta(-3))                 #当前时间-3天
print(datetime.datetime.now()+datetime.timedelta(minutes=30))   #当前时间+30分钟

时间表现类型转换(和time模块一样)

datetime.datetime.fromtimestamp(time.time())   #时间戳 -->  datetime对象
datetime.datetime.timestamp(datetime_struct)   #datetime对象--> 时间戳

#字符串 --> 时间戳
s="2017/4/1 19:03:22"
string_2_struct=datetime.datetime.strptime(s,"%Y/%m/%d %H:%M:%S")  #日期字符串--> datetime对象
stamp=datetime.datetime.timestamp(string_2_struct)
print(stamp)

#时间戳--> 字符串
t=datetime.datetime.fromtimestamp(stamp)
t_2_string=stamp=datetime.datetime.strftime(t,"%Y_%m_%d_%H_%M_%S")  #datetime对象--> 日期字符串
print(t_2_string)

时间替换

c_time=datetime.datetime.now()
print(c_time)
print(c_time.replace(hour=2,minute=3))

你可能感兴趣的:(time和datetime模块)