Python 日期和时间 本文共有5382个字,关键词: 在代码中,我们常常需要与时间打交道。在Python中,与时间处理有关的模块包括time、datetime以及calendar。在Python中,通常用时间戳、格式化的时间字符串和元组3种方式表示时间。 时间戳(timestamp)表示从1970年1月1日00时00分00秒开始按秒计算的偏移量,也就是从1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起到现在的总毫秒数。 Python格式化符号 %a 本地简化星期名称 %A 本地完整星期名称 %b 本地简化的月份名称 %B 本地完整的月份名称 %c 本地相应的日期表示和时间表示 %d 月内中的一天(0-31) %H 24小时制小时数(0-23) %I 12小时制小时数(01-12) %j 年内的一天(001-366) %m 月份(01-12) %M 分钟数(00=59) %p 本地A.M.或P.M. %S 秒(00-59) %U 一年中的星期数(00-53)星期天为星期的开始,第一个星期天之前的所有天数都放在第0周 %w 星期(0-6),星期天为星期的开始 %W 一年中的星期数(00-53)星期一为星期的开始 %x 本地相应的日期表示 %X 本地相应的时间表示 %y 两位数的年份表示(00-99) %Y 四位数的年份表示(000-9999) %Z 当前时区的名称 %% %号本身 1:%p只有与%I配合使用才有效果。 2:文档中强调确实是0~61,而不是59,闰年秒占两秒。 3:当使用strptime()函数时,只有这一年的周数和天数确定时%U和%w才会被计算。 Python的时间元组 tm_sec; #秒,正常范围0-61, 61闰年 tm_min; #分钟,0-59 tm_hour; #小时, 0-23 tm_mday; #日,即一个月中的第几天,1-31 tm_mon; #月, 从一月算起,0-11 tm_year; #年, 从1900至今已经多少年 tm_wday; #星期,一周中的第几天, 从星期日算起,0-6 tm_yday; #从今年1月1日到目前的天数,范围0-366 tm_isdst; #日光节约时间的旗标 获取当前日期 print(time.time()) #1650639413.644767 #获取元组形式的时间戳 print(time.localtime()) print(time.gmtime()) print(time.localtime(time.time())) #time.struct_time(tm_year=2022, tm_mon=4, tm_mday=22, tm_hour=22, tm_min=56, #tm_sec=53, tm_wday=4, tm_yday=112, tm_isdst=0) #格式化日期的函数(基于元组的形式进行格式化): print(time.strftime('%Y-%m-%d',time.localtime(time.time()))) #2022-04-22 mktime t=(2022,4,22,22,8,43,0,0,0) x=time.mktime(t) print(x) 1650636523 将字符串日期转换为时间数组 t = "2022-04-22 22:08:43" timeStruct = time.strptime(t, "%Y-%m-%d %H:%M:%S") print(timeStruct) #time.struct_time(tm_year=2022, tm_mon=4, tm_mday=22, tm_hour=22, tm_min=8, tm_sec=43, tm_wday=4, tm_yday=112, tm_isdst=-1) 将字符串的时间转换为时间戳 import time t = "2022-04-22 22:08:43" #将其转换为时间数组 timeStruct = time.strptime(t, "%Y-%m-%d %H:%M:%S") #转为时间戳: timeStamp = int(time.mktime(timeStruct)) print(timeStamp) #1650636523 时间戳转换为指定格式日期 timeStamp = 1650636523 localTime = time.localtime(timeStamp) strTime = time.strftime("%Y-%m-%d %H:%M:%S", localTime) print(strTime) #2022-04-22 22:08:43 格式切换 import time t = "2022/04/22 22:30:00" #先转换为时间数组,然后转换为其他格式 timeStruct = time.strptime(t, "%Y/%m/%d %H:%M:%S") strTime = time.strftime("%Y-%m-%d %H:%M:%S", timeStruct) print(strTime) #2022-04-22 22:30:00 获取当前时间并转换为指定日期格式 import time #获得当前时间时间戳 now = int(time.time()) #转换为其他日期格式,如:"%Y-%m-%d %H:%M:%S" timeStruct = time.localtime(now) strTime = time.strftime("%Y-%m-%d %H:%M:%S", timeStruct) print(strTime) #2022-04-22 22:26:30 获得7天前的时间的方法 import time import datetime #先获得时间数组格式的日期 计算 之后的就是 + _7DayAgo = (datetime.datetime.now() - datetime.timedelta(days = 7)) #timedelta()的参数有:days,hours,seconds,microseconds #转换为时间戳: timeStamp = int(time.mktime(_7DayAgo.timetuple())) #转换为其他字符串格式: strTime = _7DayAgo.strftime("%Y-%m-%d %H:%M:%S") print(strTime) #2022-04-15 22:28:11 使用datetime模块来获取当前的日期和时间 import datetime i = datetime.datetime.now() print("当前的日期和时间是 %s" % i) #当前的日期和时间是 2022-04-22 22:38:56.929294 print("ISO格式的日期和时间是 %s" % i.isoformat()) #ISO格式的日期和时间是 2022-04-22T22:38:56.929294 print("当前的日期和时间是 {0}年{1}月{2}日{3}时{4}分{5}秒". \ format(i.year, i.month,i.day,i.hour,i.month,i.second)) #当前的日期和时间是 2022年4月22日22时4分56秒 print("yyyy-mm-dd 格式是 %d-%02d-%02d" % (i.year, i.month, i.day)) #yyyy-mm-dd 格式是 2022-04-22 延迟执行,单位:s time.sleep([secs]) datetime import datetime print(datetime.datetime.today()) #2022-04-23 09:17:48.579397 print(datetime.datetime.now()) #2022-04-23 09:17:48.579448 print(datetime.datetime.utcnow()) #2022-04-23 01:17:48.579456 dt_now = datetime.datetime.strptime('2022-04-22 23:30:04.770690','%Y-%m-%d %H:%M:%S.%f') print(dt_now,type(dt_now)) #2022-04-22 23:30:04.770690 <class 'datetime.datetime'> dt_now= datetime.datetime.now() dt_new = dt_now.strptime('2000-01-01 00:00:0.000000','%Y-%m-%d %H:%M:%S.%f') print(dt_new) #2000-01-01 00:00:00 print(dt_now.strftime('%Y-%m-%d')) #2022-04-23 「一键投喂 软糖/蛋糕/布丁/牛奶/冰阔乐!」 赞赏 × 梦白沙 (๑>ڡ<)☆谢谢老板~ 1元 2元 5元 10元 50元 任意金额 2元 使用微信扫描二维码完成支付 版权声明:本文为作者原创,如需转载须联系作者本人同意,未经作者本人同意不得擅自转载。 Python 2022-04-22 评论 297 次浏览