python-常用模块-time、datetime模块
一、time模块
在Python中,通常有这几种方式来表示时间:
1.时间戳——一串数字(计算机认识)
2.时间字符串 ——t=‘2018-3-28’
3.结构化时间对象——time.struct_time
import time #1. time对象的操作: # 1.返回当前时间戳——给机器看 print(time.time()) # 2.返回当前时间的时间对象——给人看 print(time.localtime()) # 3.存在一个对象就里能拿到里面的值 a = time.localtime() print(a.tm_year, a.tm_mon) # 4.当前程序睡2秒 #time.sleep(2) #把时间戳转成'Wed Mar 28 09:14:34 2018'的时间字符串格式,不填表示当前时间的时间字符串 print('asctime', time.asctime(time.localtime(1000000))) #自1970年开始算过了多长时间 Wed Mar 28 09:14:34 2018的格式 print('ctime', time.ctime()) # 2.时间的转换 # 1.时间戳转换成时间对象 print(time.localtime(1122)) # 2.时间对象转时间戳 b = time.localtime() print(time.mktime(b)) # 3.时间戳转时间字符串 c = time.localtime() print(time.strftime('%Y-%m-%d', c)) # 4.把给定的字符串——》先时间对象——》再转时间戳 s = '2013-05-06' # 时间字符串 s2 = time.strptime(s, '%Y-%m-%d') # 先转成时间对象 print(time.mktime(s2)) # 时间对象再转成时间戳 #时间运算 #1.需要都转换成时间戳才能进行运算 s = time.localtime() # 获取当前时间的时间戳 b = time.strftime('%Y-%m-%d', s) # 转换成时间字符串 str = time.strptime(b, '%Y-%m-%d') # 时间字符串转成时间对象 print(type(str)) mk = time.mktime(str) # 时间对象再转换成时间戳可以进行运算了 print(mk)
%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 当前时区的名称 %% %号本身
2.时间的运算有如下的转换关系
2、时间运算
#时间运算 #1.需要都转换成时间戳才能进行运算 s = time.localtime() # 获取当前时间的时间戳 b = time.strftime('%Y-%m-%d', s) # 转换成时间字符串 str = time.strptime(b, '%Y-%m-%d') # 时间字符串转成时间对象 print(type(str)) mk = time.mktime(str) # 时间对象再转换成时间戳可以进行运算了 print(mk)
2、datetime模块
# datetime 接口更直观更易调用 import datetime ,time #1.返回当前日期类型 a = datetime.datetime.now() print(a) print(a.year, a.month) #1.1从时间戳快速拿到年月日 d2 = datetime.date.fromtimestamp(time.time()) print(d2) print(d2.timetuple()) # 要注意,这个会丢了,小时,分钟,秒 #2.时间运算——天、时、分、秒的运算 #返回到昨天——单位为天。 d3 = datetime.timedelta(1) # 1 代表回到1天前 print(d3) dn = datetime.datetime.now() # 当前时间 print(dn-d3) d4 = datetime.timedelta(8) print(dn-d4) #3.时间的替换 dnow = datetime.datetime.now() dnow_year=dnow.replace(year=2016) # year dnow_month=dnow.replace(month=12) # month print(dnow,dnow_year,dnow_month)