本套学习内容共计【22】个章节,每个章节都会有对应的从0-1的学习过程详细讲解,希望可以给更多的人提供帮助。
开发环境:【Win10】
开发工具:【Visual Studio 2019】
本章内容为:【日期时间time】
Python 日期和时间
Python 程序能用很多方式处理日期和时间,转换日期格式是一个常见的功能。
Python 提供了一个 time 和 calendar 模块可以用于格式化日期和时间。
时间间隔是以秒为单位的浮点小数。
每个时间戳都以自从1970年1月1日午夜(历元)经过了多长时间来表示。
Python 的 time 模块下有很多函数可以转换常见日期格式。如函数time.time()用于获取当前时间戳, 如下实例:
import time # 引入time模块
ticks = time.time()
print("当前时间戳为:", ticks)
注:时间戳单位最适于做日期运算。但是1970年之前的日期就无法以此表示了。太遥远的日期也不行,UNIX和Windows只支持到2038年。
常用获取时间的方法:(重点)
from datetime import datetime
print(datetime.now())
1、什么是时间元组?
很多Python函数用一个元组装起来的9组数字处理时间:
序号字段值
04位数年2008
1月1 到 12
2日1到31
3小时0到23
4分钟0到59
5秒0到61 (60或61 是闰秒)
6一周的第几日0到6 (0是周一)
7一年的第几日1到366 (儒略历)
8夏令时-1, 0, 1, -1是决定是否为夏令时的旗帜
上述也就是struct_time元组。这种结构具有如下属性:
序号属性值
0tm_year2008
1tm_mon1 到 12
2tm_mday1 到 31
3tm_hour0 到 23
4tm_min0 到 59
5tm_sec0 到 61 (60或61 是闰秒)
6tm_wday0到6 (0是周一)
7tm_yday1 到 366(儒略历)
8tm_isdst-1, 0, 1, -1是决定是否为夏令时的旗帜
2、获取当前时间
从返回浮点数的时间戳方式向时间元组转换,只要将浮点数传递给如localtime之类的函数。
import time
#未格式化
localtime1 = time.localtime(time.time())
print("本地时间为 :", localtime1)
print("\n-----------")
#格式化后:
localtime2 = time.asctime(localtime1)
print("本地时间为 :", localtime2)
3、格式化日期:【time.strftime()·字符串·格式化·时间三个单词简写】
import time
# 格式化成Y-m-d H:M:S形式
print(time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()))
# 格式化成a b d H:M:S Y形式
print(time.strftime("%a %b %d %H:%M:%S %Y", time.localtime()))
# 将格式字符串转换为时间戳
a = "Sat Feb 13 16:49:14 2021"
print(time.mktime(time.strptime(a,"%a %b %d %H:%M:%S %Y")))
4、python中时间日期格式化符号:
%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)
%a 本地简化星期名称
%A 本地完整星期名称
%b 本地简化的月份名称
%B 本地完整的月份名称
%c 本地相应的日期表示和时间表示
%j 年内的一天(001-366)
%p 本地A.M.或P.M.的等价符
%U 一年中的星期数(00-53)星期天为星期的开始
%w 星期(0-6),星期天为星期的开始
%W 一年中的星期数(00-53)星期一为星期的开始
%x 本地相应的日期表示
%X 本地相应的时间表示
%Z 当前时区的名称
%% %号本身
5、休息的方法:【time.sleep(秒)】(很好用,线程的时候各种用sleep控制,有的时候比task好用得多。)
import time
for x in range(10,0,-1):
print("倒计时:",x,"秒")
time.sleep(1)
6、获取某月日历
Calendar模块有很广泛的方法用来处理年历和月历,例如打印某月的月历:
import calendar
cal = calendar.month(2008, 8)
print("以下输出2018年8月份的日历:")
print(cal)
7、判断闰年:【calendar.isleap(year)】
import calendar
print(calendar.isleap(2000))#闰年返回True
#isleap的内部函数写法如下:
def isleap(year):
"""Return True for leap years, False for non-leap years."""
return year % 4 == 0 and (year % 100 != 0 or year % 400 == 0)
8、日历(Calendar)模块
此模块的函数都是日历相关的,例如打印某月的字符月历。
星期一是默认的每周第一天,星期天是默认的最后一天。更改设置需调用calendar.setfirstweekday()函数。模块包含了以下内置函数:
序号函数及描述
1calendar.calendar(year,w=2,l=1,c=6)
返回一个多行字符串格式的year年年历,3个月一行,间隔距离为c。 每日宽度间隔为w字符。每行长度为21* W+18+2* C。l是每星期行数。
2calendar.firstweekday( )
返回当前每周起始日期的设置。默认情况下,首次载入 calendar 模块时返回 0,即星期一。
3calendar.isleap(year)
是闰年返回 True,否则为 False。
4calendar.leapdays(y1,y2)
返回在Y1,Y2两年之间的闰年总数。
5calendar.month(year,month,w=2,l=1)
返回一个多行字符串格式的year年month月日历,两行标题,一周一行。每日宽度间隔为w字符。每行的长度为7* w+6。l是每星期的行数。
6calendar.monthcalendar(year,month)
返回一个整数的单层嵌套列表。每个子列表装载代表一个星期的整数。Year年month月外的日期都设为0;范围内的日子都由该月第几日表示,从1开始。
7calendar.monthrange(year,month)
返回两个整数。第一个是该月的星期几的日期码,第二个是该月的日期码。日从0(星期一)到6(星期日);月从1到12。
8calendar.prcal(year,w=2,l=1,c=6)
相当于 print calendar.calendar(year,w=2,l=1,c=6)。
9calendar.prmonth(year,month,w=2,l=1)
相当于 print calendar.month(year,month,w=2,l=1) 。
10calendar.setfirstweekday(weekday)
设置每周的起始日期码。0(星期一)到6(星期日)。
11calendar.timegm(tupletime)
和time.gmtime相反:接受一个时间元组形式,返回该时刻的时间戳(1970纪元后经过的浮点秒数)。
12calendar.weekday(year,month,day)
返回给定日期的日期码。0(星期一)到6(星期日)。月份为 1(一月) 到 12(12月)。
9、 总结:
a)、在日期处理上最常用的格式化与获取当前时间两个,好好练练这两块。
本课程目录为:
Python初级
1 、开发工具
2 、中文编码
3 、基础语法
4 、变量类型
5 、运算符
6 、条件语句
7 、while循环
8 、for循环
9 、循环控制
10、 循环嵌套
11 、字符串
12 、列表
13 、元组
14、 字典
15 、日期时间(本章)
16、 函数
17 、模块
18 、文件I/O
19 、File方法
20 、异常处理
21 、文件目录
22 、内置函数
欢迎【点赞】、【评论】、【关注】、【收藏】、【打赏】,为推广知识贡献力量。
标签:Python,year,datetime,日期,time,print,calendar,month
来源: https://blog.csdn.net/feng8403000/article/details/113801899