time模块:
time模块用于取得Unix纪元时间戳,并加以处理。计算机的系统时钟设置位特定的日期、时间和时区。内置的time模块让Python程序能读取系统时钟的当前时间。
在time模块中,time.time()和time.sleep()函数是最有用的模块。
time.time()函数:返回一个浮点数,表示当前时刻的Unix纪元时间戳
1970年1月1日0点,即协调世界时间(UTC).time.time()函数返回自那一刻以来的秒数,是一个浮点值,这个数字称为UNIX
纪元时间戳。
time.sleep(seconds)函数:让程序暂停seconds参数指定的秒数
如果需要让程序暂停一下,就调用time.sleep()函数,并传入希望程序暂停的秒数
time.sleep(seconds)函数将阻塞(也就是说,它不会返回或让程序执行其他代码),直到传递给time.sleep()的秒数流逝。
请注意,在IDLE中按Ctrl-C 不会中断time.sleep()调用。IDLE会等待到暂停结束,再抛出KeyboardInterrupt异常。
round()函数按照指定的精度四舍五入到一个浮点数。只要传入要舍入的数字,再加上可选的第二行参数,指明需要传入到小数点后多少位。
如果省略第二个参数,round()将数字四舍五入到最接近的整数。
datetime模块:
以方便的格式显示日期,或对日期进行算术运算,(搞清楚205天前是什么日期,或123天后是什么日期)就应该用datatime模块。datetime模块有自己的datetime数据类型。datetime值表示一个特定的时刻。
import datetime
print datetime.datetime.now()
datetime.datetime.now()函数:返回当前时刻的datetime对象
返回一个datetime对象,表示当前的日期和时间,根据你的计算机的时钟。这个对象包含当前时刻的年、月、日、时、
分、秒和微妙。
datetime.datetime(year,month,day,hour,minute,second)函数:返回参数指定的时刻的datetime对象
向它传入代表年、月、日、时、分、秒的整数,得到特定时刻的datetime对象。这些整数将保存在datetime对象的year、month、day、hour、minute、second属性中。
import datetime
dt = datetime.datetime(2018,12,12,16,10,0) #2018-12-12 16:10:00
print dt.year,dt.month,dt.day,dt.hour,dt.minute,dt.second
datetime.datetime.fromtimestamp(epoch)函数:返回epoch时间戳参数表示的时刻的datetime对象。
Unix纪元时间戳可以通过datetime.datetime.fromtimestamp(),转换为datetime对象。datetime对象的日期和时间将根据本地时区转换。
datetime对象可以用比较操作符进行比较(==,> , <)。
timedelta数据类型:
datetime.timedelta(weeks,days,hours,minutes,seconds,milliseconds,microseconds)函数:返回一个表示一段时间的 timedelta对象。
该函数的关键字参数都是可选的,不包括month或year.
datetime模块还提供了timedelta数据类型,它表示一段时间,而不是一个时刻
import datetime
delta = datetime.timedelta(days=11, hours=10, minutes=9, seconds=8)
print delta.days,delta.seconds,delta.microseconds
print delta.total_seconds()
print str(delta)
要创建timedelta对象,就用datetime.timedelta()函数。
datetime.timedelta()函数接受关键字参数weaks,days,hours,minutes,seconds,milliseconds,microsenconds
没有month和year关键字参数,因为月和年是可变的时间,依赖特定的月份或年份。
timedelta对象拥有的总时间以天,秒,微妙来表示。这些数字分别保存在days,seconds,microseconds属性中。
total_seconds()方法:用于timedelta对象,返回timedelta对象表示的秒数。返回以秒表示的时间。
将一个timedelta对象传入str(),将返回格式良好的、人类可读的字符串表示。
算数运算符可以用于对datetime值进行日期运算:
import datetime
dt = datetime.datetime.now()
thousand_days = datetime.timedelta(days = 1000)
print dt + thousand_days
利用+和-运算符,timedelta对象与datetime对象或其他timedelta对象相加或相减。
利用*和/运算符,timedelta对象可以乘以或除以整数或浮点数。
暂停直至特定日期:
time.sleep()方法可以暂停程序若干秒。利用一个while循环,可以让程序暂停,知道一个特定的日期。
import datetime, time
hallo_ween2016 = datetime.datetime(2016,10,31,0,0,0)
while datetime.datetime.now() < hallo_ween2016:
time.sleep(1)
将datetime对象转换为字符串:
利用strftime()方法,可以将datetime对象显示为字符串。(strftime()函数名中的f表示格式,format)
strftime(format)方法:返回一个字符串,用format字符串中的定制格式化来表示datetime对象表示的时间。
该strftime()方法使用的指令类似于Python的字符串格式化。
%Y 带世纪的年份,例如‘2014’
%y 不带世纪的年份,‘00’至‘99’
%m 数字表示的月份,‘01’至‘12’
%B 完整的月份,例如‘Novermber’
%b 简写的月份,例如‘Nov’
%d 一月中的第几天,‘01’至‘31’
%j 一年中的第几天,“001”至“366”
%w 一周中的第几天,“0”周日至“6”周六
%A 完整的周几,例如“Monday”
%a 简写的周几,例如“Mon”
%H 小时(24小时时钟),“00”至“23”
%I 小时(12小时时钟),“01”至“12”
%M 分,“00”至“59”
%S 秒,“00”至“59”
%p 'AM'或'PM'
%% ‘%’ 字符
向strftime()传入一个定制的格式化字符串,其中包含格式化指定(以及任何需要的斜线、冒号等),
strftime()将返回一个格式化的字符串,表示datetime对象的信息
将字符串转换成datetime对象:
如果有一个字符串的日期信息,如'2015/10/21 16:29:00'或 'October 21,2015',需要将它转换为datetime
对象,就用datetime.datetime.strptime()函数,strptime()与strftime()相反。
定制的格式字符串使用相同的指令,像strftime()一样。必须将格式字符串传入strptime(),这样它就知道如何解析和
理解日期字符串(strptime()函数名中p表示解析,parse)
datetime.datetime.strptime(参数1,参数2)
参数1:'2015/10/21 16:29:00' 日期字符串
参数2:'%Y/%m/%d %H:%M:%S' 定制格式化字符串
带有日期信息的字符串必须准确匹配定制的格式字符串,否则Python将抛出ValueError异常。
datetime.datetime.strptime(time_string, format)函数:返回一个datetime对象。
Python中的时间函数:
在Python中,日期和时间可能涉及好几种不同的数据类型和函数。
以下表示时间的3种不同类型的值:
1.Unix 纪元时间戳(time模块中使用)是一个浮点值或整型值,表示自1970年1月1日午夜0点(UTC)以来的秒数。
2.datetime对象(datetime模块)包含一些整型值,保存在year,month,day,hour,minute,second等属性中。
3.timedelta对象(属于datetime模块)表示一段时间,而不是一个特定的时刻。