今天是边复习边创作博客的第三天,我今年大二,我们专业开的有这门课程,因为喜欢所以更加认真学习,本以为没人看呢,看了后台浏览量让我更加认真创作,这篇博客花了2个半小时的时间,结合自己所学,所思,所想写作,目的是为了方便喜欢Python的小白学习,也是一种自我鞭策吧!
python语言使用内置time库和datetime库来处理日期时间
相关术语的解释
- UTC time Coordinated Universal Time,世界协调时,又称 格林尼治天文时间、世界标准时间。与UTC time对应的是各个时区的local time,东N区的时间比UTC时间早N个小时,因此UTC time + N小时 即为东N区的本地时间;而西N区时间比UTC时间晚N个小时,即 UTC time - N小时 即为西N区的本地时间; 中国在东8区,因此比UTC时间早8小时,可以以UTC+8进行表示。
- epoch time 表示时间开始的起点;它是一个特定的时间,不同平台上这个时间点的值不太相同,对于Unix而言,epoch time为 1970-01-01 00:00:00 UTC。
- timestamp(时间戳) 也称为Unix时间 或 POSIX时间;它是一种时间表示方式,表示从格林尼治时间1970年1月1日0时0分0秒开始到现在所经过的毫秒数,其值为float类型。 但是有些编程语言的相关方法返回的是秒数(Python就是这样),这个需要看方法的文档说明。需要说明的是时间戳是个差值,其值与时区无关。
调用库的三种方式:
以time库为例,调用其它库类似
from time import * (*代表time包含所有的时间处理函数,用到某个也可单定义,调用函数时直接使用,比如:clock()) import time (调用函数方式,比如:time.clock()) import time as t (自定义库的名称,调用时方便,比如:t.clock())
time库的主要的三类函数:
以上面第三种库调用方式举例
1.时间获取:t.time();t.ctime();t.gmtime() #每种获取时间不一样,根据需求使用
2.程序计时:t.clock();t.perf_counter() #使用方式一样
3.时间格式化:t.strftime(format,t);t.strptime(string,format)
#format表示要定义的格式,t表示获取的时间,string表示字符串类型时间
字符串格式化:%y 两位数的年份表示(00-99)
%Y 四位数的年份表示(000-9999)
%m 月份(01-12)
%d 月内中的一天(0-31)
%H 24小时制小时数(0-23)
%I 12小时制小时数(01-12)
%M 分钟数(00=59)
%S 秒(00-59)
4.程序休眠:t.sleep()
#使用举例 import time as t t0=t.gmtime() print(t0) t1="2020-12-23 19:23:20" t2 = t.strptime(t1,"%Y-%m-%d %H:%M:%S") t3 = t.strftime("%y/%m/%d %H:%M:%S") print(t2) print(t3)
打印结果:
C:\Users\86185\PycharmProjects\untitled\venv\Scripts\python.exe C:/Users/86185/PycharmProjects/untitled/Python复习/hk.py
time.struct_time(tm_year=2020, tm_mon=12, tm_mday=23, tm_hour=12, tm_min=22, tm_sec=39, tm_wday=2, tm_yday=358, tm_isdst=0)
time.struct_time(tm_year=2020, tm_mon=12, tm_mday=23, tm_hour=19, tm_min=23, tm_sec=20, tm_wday=2, tm_yday=358, tm_isdst=-1)
20/12/23 20:22:39Process finished with exit code 0
time模块主要用于时间访问和转换,这个模块提供了各种与时间相关的函数。
datetime库主要的四类函数:
datetime库是基于time库进行了封装;以import datetime as dt 为datetime库调用方式
1.date:表示的是日期对象 #dt.date
2.time;表示的是时间对象 #dt.time ;一般不用date和time函数,datetime函数包含其功能
3.datetime:表示的是日期时间对象#dt.datetime.now()表示获取当前时间;dt.strftime(format) # 按照 format 进行格式化输出
4.timedelta:主要用于定义计算时间跨度 #t=dt.timedelat(hours=10)表示定义时间跨度是10小时
用分隔符'''分类展示如下:
import datetime as dt now = dt.datetime.now() # 获取当前datetime print(now) 输出结果:2019-05-07 16:28:07.198690 ''' d = dt.date(2020, 12, 23) print(d) print('year:', d.year) print('month:', d.month) print('day:', d.day) 输出结果: 2020-12-23 year: 2020 month: 12 day: 23 ''' ''' date1=dt.date(2020,12,23) timedel=dt.timedelta(days=4)#表示时间跨度为4天 print('四天后的日期是:', date1+timedel) 输出结果:四天后的日期是:2020-12-27 '''
最后配上一段小程序:文本进度条打印程序分析
import time scale = 100 #这个可以随意设置,看需求 print("执行开始".center(scale//2,'-'))# .center(a,'b')函数是居中符,这条程序是将“执行开始”居中占字符为scale//2(可看需求自定义),b为填充符 starttime = time.clock() #time库内置函数,第一次使用是开始计时 for i in range(scale+1): a = '*' * i #将'*'字符随i的增加而增加 b = '.' * (scale - i) #将'.'字符随‘*'增加而减少,两个字符总数是scale的初始值数量 c = (i/scale) * 100 #求百分比 t = time.clock()-starttime #计算时间,第二次调用time.clock函数表示计时结束 print("\r{:^3.0f}%[{}->{}]{:.2}s".format(c,a,b,t),end="")#字符格式化,看需求,自己玩就是咋好看咋格式化 time.sleep(0.05) #time.sleep()函数表示让程序休眠,里面参数是休眠时间根据需求随意定义 print("\n"+"执行结束".center(scale//2,'-'))#同上;"\n表示换行打印";"+"连接符,具有连接功能
关于datetime模块的datetime类会在下面做详细讲解,这里简单说下time.struct_time。
time.struct_time包含如下属性:
下标/索引
属性名称
描述
0
tm_year
年份,如 2017
1
tm_mon
月份,取值范围为[1, 12]
2
tm_mday
一个月中的第几天,取值范围为[1-31]
3
tm_hour
小时, 取值范围为[0-23]
4
tm_min
分钟,取值范围为[0, 59]
5
tm_sec
秒,取值范围为[0, 61]
6
tm_wday
一个星期中的第几天,取值范围为[0-6],0表示星期一
7
tm_yday
一年中的第几天,取值范围为[1, 366]
8
tm_isdst
是否为夏令时,可取值为:0 , 1 或 -1
属性值的获取方式有两种:
- 可以把它当做一种特殊的有序不可变序列通过 下标/索引 获取各个元素的值,如t[0]
- 也可以通过 .属性名 的方式来获取各个元素的值,如t.tm_year。
需要说明的是struct_time实例的各个属性都是只读的,不可修改。
《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线
暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。
艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。
《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。
更新日志
- 中国武警男声合唱团《辉煌之声1天路》[DTS-WAV分轨]
- 紫薇《旧曲新韵》[320K/MP3][175.29MB]
- 紫薇《旧曲新韵》[FLAC/分轨][550.18MB]
- 周深《反深代词》[先听版][320K/MP3][72.71MB]
- 李佳薇.2024-会发光的【黑籁音乐】【FLAC分轨】
- 后弦.2012-很有爱【天浩盛世】【WAV+CUE】
- 林俊吉.2012-将你惜命命【美华】【WAV+CUE】
- 晓雅《分享》DTS-WAV
- 黑鸭子2008-飞歌[首版][WAV+CUE]
- 黄乙玲1989-水泼落地难收回[日本天龙版][WAV+CUE]
- 周深《反深代词》[先听版][FLAC/分轨][310.97MB]
- 姜育恒1984《什么时候·串起又散落》台湾复刻版[WAV+CUE][1G]
- 那英《如今》引进版[WAV+CUE][1G]
- 蔡幸娟.1991-真的让我爱你吗【飞碟】【WAV+CUE】
- 群星.2024-好团圆电视剧原声带【TME】【FLAC分轨】