Python之常用时间模块

标准库datetime

datetime模块:

    对日期、时间、时间戳的处理
datetime类:
    类方法

  1. today()返回本地时区当前时间的datetime对象
dt.today()
datetime.datetime(2019, 4, 10, 16, 30, 59, 483170)
  1. 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)
  1. utcnow()没有时区的当前时间
dt.utcnow()
datetime.datetime(2019, 4, 10, 8, 32, 7, 406271)
  1. 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  秒(选择性)

猜你喜欢

转载自blog.csdn.net/qq_35976427/article/details/89188999