首页 > Python基础教程 >
-
Python中的datetime包与time包包和模块详情
这篇文章主要介绍了Python中的datetime包与datetime包和模块详情,文章围绕主题展开详细内容,具有一的的参考价值,需要的小伙伴可以参考一下,希望对你有所帮助
一、datetime包
1.timedelta(params…)得到一个时间增量对象
# coding:utf-8
from datetime import timedelta
if __name__ == '__main__':
# 常用参数 hours:小时 days:天 seconds:秒 milliseconds:毫秒
delta = timedelta(hours=2)
print(delta) # 2:00:00
print(type(delta)) # <class 'datetime.timedelta'>
2.timezone(timedelta) + timedelta(params…) 创建时区对象
# coding:utf-8
from datetime import timedelta, timezone
if __name__ == '__main__':
delta = timedelta(hours=2)
zone = timezone(delta) #配合timedelta创建时区对象
print(zone) # UTC+02:00
print(type(zone)) # <class 'datetime.timezone'>
3.datetime模块
datetime.now(timezone) 获取当前时间datetime对象
# coding:utf-8
from datetime import timedelta, timezone, datetime
if __name__ == '__main__':
'''
获取当前时间,可以获取指定时区的当前时间
datetime.now(timezone)
'''
now = datetime.now()
print(now) # 2022-02-23 13:59:59.224286
print(type(now)) # <class 'datetime.datetime'>
# 设置指定时区的当前时间
print(datetime.now((timezone(timedelta(hours=9))))) # 2022-02-23 14:59:59.224286+09:00
datetime.strftime(fmt) datetime时间对象转字符串
# coding:utf-8
from datetime import datetime
if __name__ == '__main__':
'''
datetime.strftime(fmt)
将时间对象转换成字符串
fmt:格式化标准,由格式符组成
常用格式符(年:%Y,月:%m,日:%D,时:%H,分:%M,秒:%S)
'''
now = datetime.now()
print(now.strftime('%Y-%m-%d %H:%M:%S')) # 2022-02-23 14:04:24
datetime.strptime(date_string,fmt) 字符串转成datetime时间对象
# coding:utf-8
from datetime import datetime
if __name__ == '__main__':
'''
datetime.strptime(date_string,fmt)
将字符串转换成时间对象,要求date_string的格式完全匹配fmt格式化标准
'''
time_obj = datetime.strptime('2022-2-22', '%Y-%m-%d')
# datetime.strptime('2022-2-22', '%Y-%m-%d %H') Error date_string 中不存在小时而fmt中要求有小时
print(datetime.strptime('2022-2-22 14', '%Y-%m-%d %H')) # 2022-02-22 14:00:00
print(time_obj) # 2022-02-22 00:00:00
print(type(time_obj)) # <class 'datetime.datetime'>
datetime.timestamp(datetime_obj) 将datetime时间对象转换成秒级时间戳
# coding:utf-8
from datetime import datetime
if __name__ == '__main__':
'''
datetime.timestamp(datetime_obj)
datetime_obj:datetime 时间对象
返回 float
'''
print(datetime.timestamp(datetime.now())) # 1645598565.715
datetime.fromtimestamp(t) 将秒级时间戳转换成datetime时间对象
# coding:utf-8
from datetime import datetime, timedelta, timezone
if __name__ == '__main__':
'''
datetime.fromtimestamp(t)
t:秒级时间戳 float类型
返回:datetime时间对象
'''
datetime_obj = datetime.fromtimestamp(1645598565.715)
print(datetime_obj) # 2022-02-23 14:42:45.715000
print(type(datetime_obj)) # <class 'datetime.datetime'>
4.使用datetime对象 + timedelta(params…) 进行时间运算
# coding:utf-8
from datetime import datetime, timedelta, timezone
if __name__ == '__main__':
now = datetime.now()
fmt = '%Y-%m-%d %H:%M:%S'
print(now.strftime(fmt)) # 2022-02-23 15:07:01
# 3小时后时间
print((now + timedelta(hours=3)).strftime(fmt)) # 2022-02-23 18:07:01
# 3小时前时间
print((now - timedelta(hours=3)).strftime(fmt)) # 2022-02-23 12:07:01
print((now + timedelta(hours=-3)).strftime(fmt)) # 2022-02-23 12:07:01
# 建议timedelta的参数都使用正数(容易理解)
二、time包
1.time.time() 得到当前秒级时间戳
# coding:utf-8
import time
if __name__ == '__main__':
print(time.time()) # 1645667203.7236724
2.time.localtime(second) 将秒转换成time时间对象
# coding:utf-8
import time
if __name__ == '__main__':
# second 不填,则默认当前的时间戳
t = time.localtime(time.time())
t2 = time.localtime()
print(t) # time.struct_time(tm_year=2022, tm_mon=2, tm_mday=24, tm_hour=10, tm_min=10, tm_sec=8, tm_wday=3, tm_yday=55, tm_isdst=0)
print(t2) # time.struct_time(tm_year=2022, tm_mon=2, tm_mday=24, tm_hour=10, tm_min=10, tm_sec=8, tm_wday=3, tm_yday=55, tm_isdst=0)
print(type(t)) # <class 'time.struct_time'>
print(type(t2)) # <class 'time.struct_time'>
3.time.strftime(fmt,time_obj) 将time时间对象转换成字符串
# coding:utf-8
import time
if __name__ == '__main__':
"""
time.strftime(fmt,time_obj)
fmt:格式化标准 参考 datetime.strftime(fmt)
time_obj:time时间对象,不填默认是当前日期的time时间对象
"""
t = time.localtime(time.time() + 3600)
print(time.strftime('%Y-%m-%d %H:%M:%S')) # 2022-02-24 10:16:17
print(time.strftime('%Y-%m-%d %H:%M:%S', t)) # 2022-02-24 11:16:17
4.time.strptime(time_string,fmt) 将字符串转换成time时间对象
# coding:utf-8
import time
if __name__ == '__main__':
"""
time.strptime(time_string,fmt)
参考 datetime.strptime(date_string,fmt)
time_string:时间字符串
fmt:格式化标准
"""
fmt = '%Y-%m-%d %H:%M:%S'
t = time.strftime(fmt, time.localtime())
print(t) # 2022-02-24 10:25:17
print(time.strptime(t, fmt)) # time.struct_time(tm_year=2022, tm_mon=2, tm_mday=24, tm_hour=10, tm_min=25, tm_sec=40, tm_wday=3, tm_yday=55, tm_isdst=-1)
5.time.sleep(second) 休眠 second 秒
# coding:utf-8
import time
if __name__ == '__main__':
print(time.time()) # 1645670183.6567423
time.sleep(2)
print(time.time()) # 1645670185.6708047
到此这篇关于Python中的datetime包与datetime包和模块详情的文章就介绍到这了,更多相关Python时间相关包和模块内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!
原文链接:https://blog.csdn.net/qq_29744347/article/details/123106570