Python3学习笔记(十五):常用时间模块time和datetime
一、time模块
1、时间戳
time.time() :从1970-01-01到至今的秒数
import time print(time.time()) 1529238004.2784646
2、等待
time.sleep(seconds):等待second秒
3、计算CPU的执行时间
time.clock():统计CPU工作的时间
import time time.sleep(3) print(time.clock()) 7.331230492053862e-07
4、打印UTC时间
time.gmtime(seconds=None):把时间戳转化成相对于1970-01-01的UTC结构化时间,不传seconds参数时,默认打印当时的UTC结构化时间
import time print(time.gmtime()) #不传参数时,默认打印当前的UTC结构化时间 time.struct_time(tm_year=2018, tm_mon=6, tm_mday=17, tm_hour=12, tm_min=50, tm_sec=34, tm_wday=6, tm_yday=168, tm_isdst=0) print(time.gmtime(6454899855)) #传入参数时,把时间戳转化成UTC结构化时间 time.struct_time(tm_year=2174, tm_mon=7, tm_mday=19, tm_hour=11, tm_min=44, tm_sec=15, tm_wday=1, tm_yday=200, tm_isdst=0)
5、打印本地时间
time.localtime(seconds=None):把时间戳转化成相对于1970-01-01的本地时间,不传seconds参数时,默认打印当时的本地时间
import time print(time.localtime()) #不传参数时,默认打印当前本地时间 time.struct_time(tm_year=2018, tm_mon=6, tm_mday=17, tm_hour=20, tm_min=53, tm_sec=41, tm_wday=6, tm_yday=168, tm_isdst=0) print(time.localtime(6454899855)) #传入参数,把时间戳转化成本地时间 time.struct_time(tm_year=2174, tm_mon=7, tm_mday=19, tm_hour=19, tm_min=44, tm_sec=15, tm_wday=1, tm_yday=200, tm_isdst=0)
6、自定义时间格式
strftime(format, p_tuple=None):按照格式化字符把struct_time元组格式时间转化成自定义时间格式,不传p_tuple参数时,默认转化当前时间
Commonly used format codes: %Y Year with century as a decimal number. %m Month as a decimal number [01,12]. %d Day of the month as a decimal number [01,31]. %H Hour (24-hour clock) as a decimal number [00,23]. %M Minute as a decimal number [00,59]. %S Second as a decimal number [00,61]. %z Time zone offset from UTC. %a Locale's abbreviated weekday name. %A Locale's full weekday name. %b Locale's abbreviated month name. %B Locale's full month name. %c Locale's appropriate date and time representation. %I Hour (12-hour clock) as a decimal number [01,12]. %p Locale's equivalent of either AM or PM.
import time print(time.strftime('%Y-%m-%d %H:%M:%S')) #不传第二个参数p_tuple时默认把当前时间转化成自定义格式时间 2018-06-17 21:09:51 struct_time = time.gmtime() print(time.strftime('%Y-%m-%d %H:%M:%S', struct_time)) #传入第二个参数p_tuple时,按照传入参数的时间转化成自定义格式时间 2018-06-17 13:21:26
7、把字符串格式时间转化成元组格式时间
strptime(string, format):按照格式把时间转化成元组格式时间
import time struct_time = time.gmtime() print(time.strptime('2018-06-17 13:21:26','%Y-%m-%d %H:%M:%S')) time.struct_time(tm_year=2018, tm_mon=6, tm_mday=17, tm_hour=13, tm_min=21, tm_sec=26, tm_wday=6, tm_yday=168, tm_isdst=-1)
8、获取元组结构化时间中的单个时间参数值
如果我需要知道今天是今年中的第几天?有没有快速办法获取呢?
import time struct_time = time.localtime() print(struct_time.tm_yday) 168
可以根据这种方式获取元组结构化时间中的任意参数值
9、把时间戳转化成固定格式字符串时间
ctime(seconds=None): 把时间戳转化成固定格式的字符串时间,不传seconds参数时,默认把当前时间转化成固定格式字符串时间
import time print(time.ctime()) #不传seconds时,默认把当前时间转化成固定格式的字符串时间 Sun Jun 17 21:44:03 2018 import time print(time.ctime(65324623)) #传入时间戳,把时间戳转化成固定格式的字符串时间 Thu Jan 27 09:43:43 1972
10、把元组形式的结构化时间转化成时间戳
mktime(p_tuple):把元组形式的结构化时间转化成时间戳
import time print(time.mktime(time.localtime())) 1529243313.0
二、datetime模块
1、打印格式化时间
datetime.datetime.now():打印格式化时间,这种格式大多用于日志打印中
import datetime print(datetime.datetime.now()) 2018-06-17 21:53:19.883778