day5-time与datatime
time与datatime
一、time
1. time.clock() #返回处理器运算时间,python3.3开始改成time.process_time()
1 >>> import time 2 >>> time.clock() 3 1.1327444320891394e-06
2. time.altzone #返回与utc时间的时间差,以秒计算
1 >>> time.altzone 2 -32400
3. time.time() #返回当前时间的时间戳(1970年1月1日UNIX诞生元年算起)
1 >>> time.time() 2 1497541599.429
4. time.localtime(时间戳) #返回(年,月,日,时,分,秒,一周中的第几天,一年中的第几天,是否为夏令时)的struct time对象格式,如果不填时间戳返回当前时间的struct time对象
1 >>> time.localtime() 2 time.struct_time(tm_year=2017, tm_mon=6, tm_mday=15, tm_hour=23, tm_min=48, tm_sec=22, tm_wday=3, tm_yday=166, tm_isdst=0) 3 >>> time.localtime(time.time()) 4 time.struct_time(tm_year=2017, tm_mon=6, tm_mday=15, tm_hour=23, tm_min=48, tm_sec=29, tm_wday=3, tm_yday=166, tm_isdst=0)
5. time.gmtime(时间戳) #返回UTC区(年,月,日,时,分,秒,一周中的第几天,一年中的第几天,是否为夏令时)的struct time对象格式,如果不填时间戳返回UTC时间的struct time对象
1 >>> time.gmtime() 2 time.struct_time(tm_year=2017, tm_mon=6, tm_mday=15, tm_hour=16, tm_min=0, tm_sec=54, tm_wday=3, tm_yday=166, tm_isdst=0) 3 >>> time.gmtime(time.time()+28800) 4 time.struct_time(tm_year=2017, tm_mon=6, tm_mday=16, tm_hour=0, tm_min=1, tm_sec=9, tm_wday=4, tm_yday=167, tm_isdst=0)
6. time.mktime(struct time对象) #把struct time对象转换成时间戳
1 >>> time.mktime(time.localtime()) 2 1497543227.0
7. time.asctime(struct time对象) #按照特定格式返回struct time对象代表的时间字符串,如果不填struc time对象返回当前时间
1 >>> time.asctime() 2 'Thu Jun 15 23:54:24 2017' 3 >>> time.asctime(time.localtime()) 4 'Thu Jun 15 23:54:31 2017'
8. time.strftime(格式,struct time对象) #指定格式返回struct_time时间对象代表的时间字符串
1 >>> time.strftime("%Y/%m/%d", time.localtime()) 2 '2017/06/16'
9. time.strptime(格式化的时间字符串,格式) #把格式化的时间字符串转换为struct time元祖
1 >>> time.strptime('2017/06/16', "%Y/%m/%d") 2 time.struct_time(tm_year=2017, tm_mon=6, tm_mday=16, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=4, tm_yday=167, tm_isdst=-1)
时间格式:
| 格式 | 含义 |
| %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 | 时区的名字(如果不存在为空字符) |
| %% | ‘%’字符 |
时间格式转换图:


二、datetime
1. datetime.datetime.now() #返回当前时间
1 >>> import datetime 2 >>> datetime.datetime.now() 3 datetime.datetime(2017, 6, 16, 23, 34, 53, 278935) 4 >>> print(datetime.datetime.now()) 5 2017-06-16 23:38:26.977949
2. datetime.date.fromtimestamp(时间戳) #将时间戳转换为日期格式
1 >>> import time 2 >>> print(datetime.date.fromtimestamp(time.time())) 3 2017-06-16
3. datetime.timedelta() #时间单位,默认为天,可利用其进行时间加减
1 #当前时间加3天 2 >>> t1 = datetime.datetime.now() + datetime.timedelta(3) 3 >>> t1 4 datetime.datetime(2017, 6, 19, 23, 45, 42, 884985) 5 >>> print(t1) 6 2017-06-19 23:45:42.884985 7 #当前时间减3天 8 >>> t1 = datetime.datetime.now() - datetime.timedelta(days=3) 9 >>> print(t1) 10 2017-06-13 23:46:19.760396 11 #当前时间加3小时 12 >>> print(datetime.datetime.now() + datetime.timedelta(hours=3)) 13 2017-06-17 02:47:35.587628 14 #当前时间加30分钟 15 >>> print(datetime.datetime.now() + datetime.timedelta(minutes=30)) 16 2017-06-17 00:17:52.376500
4. 时间替换
1 >>> print(t1.replace(hour=22,minute=51)) 2 2017-06-13 22:51:19.760396

浙公网安备 33010602011771号