标准库datetime
datetime模块:
对日期、时间、时间戳的处理
datetime类:
类方法
- today()返回本地时区当前时间的datetime对象
dt.today()
datetime.datetime(2019, 4, 10, 16, 30, 59, 483170)
- now(tz=None)返回当前时间的datetime对象,时间到微妙,如果tz为None,返回和today()一样
from datetime import datetime as dt #as别名
dt.now() #构造时间对象
datetime.datetime(2019, 4, 10, 16, 27, 23, 961666)
- utcnow()没有时区的当前时间
dt.utcnow()
datetime.datetime(2019, 4, 10, 8, 32, 7, 406271)
- fromtimestamp(timestamp,tz=None)从一个时间戳返回一个datetime对象
aa = dt.now().timestamp() #首先构造时间对象,调用时间戳方法
1554885482.402512 #得到的时间戳实例
dt.fromtimestamp(aa) #使用datetime对象的fromtimestamp方法将时间戳构造成datetime对象
datetime.datetime(2019, 4, 10, 16, 38, 2, 402512)
datetime对象:
timestamp()返回一个到微秒的时间戳
时间戳:格林威治时间1970年1月1日0点到现在的秒数
aa = dt.now().timestamp() #首先构造时间对象,调用时间戳方法
1554885482.402512 #得到的时间戳实例
datetime对象:
构造方法datetime.datetime(2016,12,6,16,29,43,79043)
year、month 、day、 hour、 minute、 second、 microsecond,取datetime对象的年月日时分秒及毫秒
weekday()返回星期的天,周一0,周日6
isoweekday()返回星期的天,周一1,周日7
date()返回日期date对象
time()返回时间time对象
replace()修改并返回新的时间
isocalendar()返回一个三元组(年,周数,周的天)
from datetime import datetime as dt #as别名
from datetime import timedelta
t1 = timedelta(seconds=60)
t2 = timedelta(seconds=70)
t2-t1
datetime.timedelta(0, 10)
日期格式化:
类方法strptime(date_string,format),返回datetime对象 #这是datetime.datetime类的方法,date_string调的是日期字符串,用format某种格式来格式化输出时间对象
对象方法strftime(format),返回字符串,#这个是datetime对象按照什么格式来格式化字符串,和上面互逆。
构造方法:
datetime.timedelta(days=0,second=0,microseconds=0,milliseconds=0,minutes=0,hours=0,weeks=0)
year=datetime.timedelta(days=365)
- total_seconds()返回时间差的总秒数
import datetime
start = datetime.datetime.now()
a = 1
for i in range(10000000):
a+=i
delta = (datetime.datetime.now()-start).total_seconds()
print(delta)
3.148235
字符串format函数格式化:
from datetime import datetime as dt
aa = dt.strptime("19/11/20 19:30","%y/%m/%d %H:%M")
aa
datetime.datetime(2019, 11, 20, 19, 30)
print(aa.strftime("%Y/%m/%d %H:%M:%S"))
2019/11/20 19:30:00
print('{}'.format(aa))
2019-11-20 19:30:00
timedelta对象(包含具体的时间差数据)
datetime2=datetime1+timedelta
datetime2=datetime1-timedelta
timedelta=datetime1-datetime2
time
time.sleep(secs)将调用线程挂起指定的秒数
参 数:
%H 小时(以00-23来表示)。
%I 小时(以01-12来表示)。
%K 小时(以0-23来表示)。
%l 小时(以0-12来表示)。
%M 分钟(以00-59来表示)。
%P AM或PM。
%r 时间(含时分秒,小时以12小时AM/PM来表示)。
%s 总秒数。起算时间为1970-01-01 00:00:00 UTC。
%S 秒(以本地的惯用法来表示)。
%T 时间(含时分秒,小时以24小时制来表示)。
%X 时间(以本地的惯用法来表示)。
%Z 市区。
%a 星期的缩写。
%A 星期的完整名称。
%b 月份英文名的缩写。
%B 月份的完整英文名称。
%c 日期与时间。只输入date指令也会显示同样的结果。
%d 日期(以01-31来表示)。
%D 日期(含年月日)。
%j 该年中的第几天。
%m 月份(以01-12来表示)。
%U 该年中的周数。
%w 该周的天数,0代表周日,1代表周一,异词类推。
%x 日期(以本地的惯用法来表示)。
%y 年份(以00-99来表示)。
%Y 年份(以四位数来表示)。
%n 在显示时,插入新的一行。
%t 在显示时,插入tab。
MM 月份(必要)。
DD 日期(必要)。
hh 小时(必要)。
mm 分钟(必要)。
CC 年份的前两位数(选择性)。
YY 年份的后两位数(选择性)。
ss 秒(选择性)。