python-- time 和 datetime
前戏
# gmtime转为伦敦时间,localtime转为北京时间
# 时间戳时间(time.time),格林威治时间,float数据类型 给机器用的 # 英国伦敦的时间 1970.1.1 0:0:0 # 北京时间 1970.1.1 8:0:0 # 结构化时间,时间对象(time.localtime()) 上下两种格式的中间状态 # 时间对象 能够通过.属性名来获取对象中的值 # 格式化时间,字符串时间,str数据类型(time.strftime)给人看的 # 可以根据你需要的格式 来显示时间
time
import time # 导入time模块 def logger(): # 定义了函数名为logger time_format = '%Y-%m-%d %X' # 时间格式,Y年m月d日X时分秒 time_current = time.strftime(time_format) # time.strftime引用上面的时间格式 print(time_current) logger()
结果:
2020-09-20 21:24:51
获取时间戳
import time print(time.time()) # 获取时间戳,1970年到此刻有多少秒
结果:
1600608332.7670934
例
import time print(time.localtime()) # 把当前的时间戳转换为本地时间
结果
time.struct_time(tm_year=2020, tm_mon=9, tm_mday=20, tm_hour=21, tm_min=26, tm_sec=15, tm_wday=6, tm_yday=264, tm_isdst=0)
例
import time time_obj = time.localtime() print(time_obj) print(time_obj.tm_year) # 获取年 print(time_obj.tm_mday) # 获取天 print(time_obj.tm_sec)
结果:
time.struct_time(tm_year=2020, tm_mon=9, tm_mday=20, tm_hour=21, tm_min=27, tm_sec=43, tm_wday=6, tm_yday=264, tm_isdst=0)
2020
20
43
例
import time print(time.gmtime()) # 把当前的时间戳转换为UTC时间 time.sleep(2) # 休眠多少秒
结果:
time.struct_time(tm_year=2020, tm_mon=9, tm_mday=20, tm_hour=13, tm_min=28, tm_sec=12, tm_wday=6, tm_yday=264, tm_isdst=0)
三种时间格式的转换
将时间戳格式转为格式化格式
import time time_obj = time.localtime(1500000000) format_time = time.strftime('%y-%m-%d %H:%M:%S', time_obj) print(format_time)
结果:
17-07-14 10:40:00
将格式化时间转为时间戳格式
import time struct_time = time.strptime('2008-8-8', '%Y-%m-%d') print(struct_time) print(time.mktime(struct_time))
结果:
time.struct_time(tm_year=2008, tm_mon=8, tm_mday=8, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=4, tm_yday=221, tm_isdst=-1)
1218124800.0
datetime
import time import datetime x = time.localtime() print(x.tm_year) # 获取本地时间的年份x.tm_mon月份x.tm_mday日 2018 print(time.strftime("%Y-%m-%d %H:%M:%S", x)) # 将localtime的时间转换为格式化的字符串 print(time.ctime()) print(datetime.datetime.now())
结果:
2020
2020-09-20 21:31:59
Sun Sep 20 21:31:59 2020
2020-09-20 21:31:59.861279
例
import datetime print(datetime.datetime.now()) # 当前时间 print(datetime.datetime.now() + datetime.timedelta(3)) # 当前时间加三天 print(datetime.datetime.now() + datetime.timedelta(-3)) # 当前时间减三天 print(datetime.datetime.now() + datetime.timedelta(hours=3)) # 当前时间加三小时
结果:
2020-09-20 21:32:49.762372 2020-09-23 21:32:49.762372 2020-09-17 21:32:49.762372 2020-09-21 00:32:49.762372
例
import datetime, time print(datetime.datetime.now()) print(datetime.date.fromtimestamp(time.time())) # 时间戳直接转成日期格式 print(datetime.datetime.now()) print(datetime.datetime.now() + datetime.timedelta(3)) # 当前时间+3天 print(datetime.datetime.now() + datetime.timedelta(-3)) # 当前时间-3天 print(datetime.datetime.now() + datetime.timedelta(hours=3)) # 当前时间+3小时 print(datetime.datetime.now() + datetime.timedelta(minutes=30)) # 当前时间+30分 c_time = datetime.datetime.now() print(c_time.replace(minute=3, hour=2)) # 时间替换
结果:
2020-09-20 21:33:28.694048 2020-09-20 2020-09-20 21:33:28.694048 2020-09-23 21:33:28.694048 2020-09-17 21:33:28.694048 2020-09-21 00:33:28.694048 2020-09-20 22:03:28.694048 2020-09-20 02:03:28.694048
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)