python时间模块

datetime模块

时间高级类

  1. datetime.date:表示日期的类

  2. datetime.datetime:表示日期时间的类

  3. datetime.time:表示时间的类

  4. datetime.timedelta:表示时间间隔,即两个时间点的间隔

  5. datetime.tzinfo:时区的相关信息

类方法,用类调用的方法,由类方法获得一个时间对象

now(tz=None) 返回当前时间的datetime对象,时间到微秒,如果tz为None,返回当前时区的不带时区信息的时间

utcnow() 不带时区的0时区时间

fromtimestamp(timestamp, tz=None) 从一个时间戳返回一个datetime对象

时间对象方法

timestamp() 返回一个到微秒的时间戳

​ 时间戳:格林威治时间1970年1月1日0点到现在的秒数

​ 构造方法 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对象

datetime的格式化输出

%w 星期
%d 天
%b 月(简写)
%B 月(全称)
%m 月份(数字)
%y 年(后两位)
%Y 年(写全)
%H 小时(24小时制)
%I 小时(12小时制)
%M 分钟
%S 秒
%z 时区

import datetime
print(datetime.datetime.now())
#结果 无时区时间
2021-06-25 04:31:52.979941
        
print(datetime.datetime.now(datetime.timezone(datetime.timedelta(hours=8))))
#结果带时区的时间
2021-06-25 04:26:04.793499+08:00
        
print(datetime.datetime.now().timestamp())
#查看当前时间的时间戳
1624566805.784747

print(datetime.datetime.fromtimestamp(1624566805.784747))
#通过时间戳,获得时间对象
2021-06-25 04:33:25.784747
        
t = datetime.datetime.fromtimestamp(1624566805.784747)
print(type(t), t)
print(t.strftime('%Y-%m-%d###%w###%H:%M:%S'))
print(datetime.datetime.strptime('2021-06-25###5###04:33:25', '%Y-%m-%d###%w###%H:%M:%S'))
#结果
#通过strftime来给时间对象格式输出
#通过strptime把时间输出格式转换为时间对象
<class 'datetime.datetime'> 2021-06-25 04:33:25.784747
2021-06-25###5###04:33:25
2021-06-25 04:33:25
        
print(datetime.datetime(2020, 3, 4, 12, 35, 6))
#通过自定义时间
2020-03-04 12:35:06
        
t = datetime.datetime.fromtimestamp(1624566805.784747)
print(t.year,t.month,t.day,t.hour,t.date(),t.time())
#结果
2021 6 25 4 2021-06-25  04:33:25.784747

t = datetime.datetime.now()
print('{:%Y~%m~%d}'.format(t))
#用format对时间对象进行格式化输出
2021~06~25


timedelta类

datetime2 = datetime1 + timedelta

datetime2 = datetime1 - timedelta

timedelta = datetime1 - datetime2

构造方法

datetime.timedelta(days=0,seconds=0,microseconds=0,milliseconds=0,minutes=0, hours=0,weeks=0)

year = datetime.timedelta(days=365)

timedelta对象有方法total_seconds(),返回时间差的总秒数

time模块

time.sleep(secs) 将调用线程挂起指定的秒数

posted @ 2022-11-21 10:02  厚礼蝎  阅读(26)  评论(0编辑  收藏  举报