python time、datetime模块

时间的三种格式:

1)时间戳

2)格式化的时间字符串

3)元组(struct_time):time.struct_time(tm_year=1970, tm_mon=5, tm_mday=23, tm_hour=20, tm_min=7, tm_sec=14, tm_wday=5, tm_yday=143, tm_isdst=0) ; 元组中的9个元素分别对应:年、月、日、时、分、秒、星期几(要减去1,默认星期一是0)、一年的第几天、是否是夏令时

time模块

获取时间戳:

timeStamp = time.time()
print(timeStamp) # 当前时间;时间戳格式

时间戳 -----> 时间元组:

# 时间戳--->元组
print(time.gmtime(12341234))  # 时间元组;获取某个时间戳的UTC时间(不写参数则为当前时间)
print(time.localtime())       # 时间元组;获取某个时间戳的本地时间(不写参数则为当前时间)
print(time.localtime().tm_year)  # 获取元组中某个元素的值

时间元组 ------> 时间戳:

# 时间元组--->时间戳
tupleTime = time.localtime()    # 当前时间的时间元组
print(time.mktime(tupleTime))   # 时间戳

时间元组------> 格式化字符串:

# 时间元组--->格式化字符串
print(time.strftime('%Y-%m-%d %H:%M:%S, %a,%A,%b,%B,%c,%I,%j,%p,%U,%w,%W,%x,%X,%y',tupleTime)) 
print(time.strftime('%x %X',tupleTime))
''' 
%a    本地(locale)简化星期名称    
%A    本地完整星期名称   
%b    本地简化月份名称    
%B    本地完整月份名称    
%c    本地相应的日期和时间表示    
%d    一个月中的第几天(01 - 31)    
%H    一天中的第几个小时(24小时制,00 - 23)    
%I    第几个小时(12小时制,01 - 12)    
%j    一年中的第几天(001 - 366)    
%m    月份(01 - 12)    
%M    分钟数(00 - 59)    
%p    本地am或者pm的相应符    
%S    秒(01 - 61)    
%U    一年中的星期数。(00 - 53星期天是一个星期的开始。)第一个星期天之前的所有天数都放在第0周。    
%w    一个星期中的第几天(0 - 6,0是星期天)    
%W    和%U基本相同,不同的是%W以星期一为一个星期的开始。    
%x    本地相应日期    
%X    本地相应时间    
%y    去掉世纪的年份(00 - 99)    
%Y    完整的年份    
%Z    时区的名字(如果不存在为空字符)    
%%    ‘%’字符'''

格式化字符串-------> 时间元组:

# 格式化时间字符串--->时间元组
print(time.strptime('2019-12-01 21:29:30','%Y-%m-%d %H:%M:%S'))

时间元组、时间戳---------> 固定格式字符串

# 时间元组/时间戳--->固定格式字符串
print(time.asctime())
print(time.ctime(timeStamp))

datetime模块

datetime模块是对time模块的封装,本质没有太大区别

import datetime


print('datetime'.center(50,'-'))
current_time = datetime.datetime.now()
print(current_time)                            # 当前格式化的时间
print(datetime.date.fromtimestamp(timeStamp))  # 时间戳转换成年月日
print(datetime.datetime.now()+datetime.timedelta(3))  # 三天后的时间,可以为负数,为几天前
print(datetime.datetime.now()+datetime.timedelta(hours=3)) # 几小时后的时间
print(datetime.datetime.now()+datetime.timedelta(minutes=3))
print(datetime.datetime.now()+datetime.timedelta(weeks=3))

# 时间的替换
print(current_time.replace(year=2012,month=12,day=12,hour=12,minute=12,second=12,microsecond=12))
posted @ 2019-11-01 16:35  wztshine  阅读(168)  评论(0编辑  收藏  举报