python可以通过多种方式处理日期和时间。 时间(time)、 日期时间(datetime) 和 日历(calendar) 模块可用于跟踪日期和时间。
>>> import time #导入时间模块,可以定时睡眠
>>> import datetime #导入时间日期模块
>>> startTime = w() #当前时间
>>> time.sleep(3) #睡眠3秒
>>> endTime = w() #当前时间
>>> print( (endTime - startTime).seconds ) #获取时间差(秒)>>> d1 = w() #当前时间
>>> d2 = d1 + datetime.timedelta(days = 10) #10天后的时间
>>> d2
datetime.datetime(2018, 4, 19, 16, 2, 4, 825259)
>>> d1
datetime.datetime(2018, 4, 9, 16, 2, 4, 825259)
提供与日期和时间相关的4个模块:
时间间隔是以秒为单位的浮点数。从1970年1月1日上午12:00开始。
time 模块中的time() 函数返回1970年1月1日上午12:00开始的秒数。
但是,这个形式不能表示在时代(1970年1月1日上午12:00)之前的日期。在未来的日子也不能以这种方式表示 - 截止点是在2038年的UNIX和Windows的某个时刻。
>>> import time
>>> time.time()
1523279564.329913
许多python函数将时间处理成 9 个数字的元组,如下所示:
索引字段值
04位数表示年份2018,2019…
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表示库确定DST
>>> time.localtime()
time.struct_time(tm_year=2018, tm_mon=4, tm_mday=9, tm_hour=21, tm_min=34, tm_sec=12, tm_wday=0, tm_yday=99, tm_isdst=0)
要将从时间浮点值开始的秒数瞬间转换为时间序列,将浮点值传递给返回具有所有有效九个项目的时间元组的函数(例如本地时间)。
日期格式化函数: time.strftime() 函数。 格式字符串:时间的都是大写表示。
- %Y : 表示年,四位
- %m : 表示月,两位
- %d : 表示天,两位
- %H : 大写,表示小时
- %M : 大写,表示分钟
- %S : 大写,表示秒
>>> time.strftime("%Y-%m-%d %H:%M:%S" ,time.localtime())
'2018-04-09 21:48:29'
calendar 模块提供了广泛的方法来显示年历和月度日历。
>>> import calendar
>>> h(2018, 4) #获取的是可打印字符串
' April 2018nMo Tu We Th Fr Sa Sun 1n 2 3 4 5 6 7 8n 9 10 11 12 13 14 15n16 17 18 19 20 21 22n23 24 25 26 27 28 29n30n'>>> h(2018, 4)) #打印April 2018
Mo Tu We Th Fr Sa Su12 3 4 5 6 7 89 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30
time 时间模块提供了处理时间
import timeprint ("time.localtime() : %s" , time.localtime())time.localtime() : time.struct_time(tm_year = 2019, tm_mon = 2, tm_mday = 15, tm_hour = 10, tm_min = 13, tm_sec = 50, tm_wday = 0, tm_yday = 46, tm_isdst = 0)import timet = (2019, 2, 15, 10, 13, 38, 1, 48, 0)
d = time.mktime(t) #指定元组作为时间
print ("time.mktime(t) : %f" % d)
print ("asctime(localtime(secs)): %s" % time.asctime(time.localtime(d)))
结果:
time.mktime(t) : 1550196818.000000
asctime(localtime(secs)): Fri Feb 15 10:13:38 2019>>> time.strftime('%Y%m%d') #日期格式化
'20180409'>>> time.strptime('20180808', '%Y%m%d') #解析日期字符串
time.struct_time(tm_year=2018, tm_mon=8, tm_mday=8, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=2, tm_yday=220, tm_isdst=-1)
calendar 模块提供与日历相关的功能。包括为给定的月份或年份打印文本日历的功能。
默认情况下,日历将星期一作为一周的第一天,将周日作为最后一天,可以通过调用 calendar.setfirstweekday()函数设置修改。
>>> h(2018, 4))April 2018
Mo Tu We Th Fr Sa Su12 3 4 5 6 7 89 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30>>> calendar.setfirstweekday(6) #变更日历的第一天为周日
>>> h(2018, 4))April 2018
Su Mo Tu We Th Fr Sa1 2 3 4 5 6 78 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
-calendar.calendar(year,w = 2,l = 1,c = 6) : 返回一个具有年份日历的多行字符串格式化为三列,以c个空格分隔。 w是每个日期的字符宽度; 每行的长度为21 * w + 18 + 2 * c,l是每周的行数。
>>> calendar.setfirstweekday(0)
>>> print(calendar.calendar(2019, 2, 1, 6,3))2019January February March
Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su1 2 3 4 5 6 1 2 3 1 2 37 8 9 10 11 12 13 4 5 6 7 8 9 10 4 5 6 7 8 9 10
14 15 16 17 18 19 20 11 12 13 14 15 16 17 11 12 13 14 15 16 17
21 22 23 24 25 26 27 18 19 20 21 22 23 24 18 19 20 21 22 23 24
28 29 30 31 25 26 27 28 25 26 27 28 29 30 31April May June
Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su1 2 3 4 5 6 7 1 2 3 4 5 1 28 9 10 11 12 13 14 6 7 8 9 10 11 12 3 4 5 6 7 8 9
15 16 17 18 19 20 21 13 14 15 16 17 18 19 10 11 12 13 14 15 16
22 23 24 25 26 27 28 20 21 22 23 24 25 26 17 18 19 20 21 22 23
29 30 27 28 29 30 31 24 25 26 27 28 29 30July August September
Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su1 2 3 4 5 6 7 1 2 3 4 18 9 10 11 12 13 14 5 6 7 8 9 10 11 2 3 4 5 6 7 8
15 16 17 18 19 20 21 12 13 14 15 16 17 18 9 10 11 12 13 14 15
22 23 24 25 26 27 28 19 20 21 22 23 24 25 16 17 18 19 20 21 22
29 30 31 26 27 28 29 30 31 23 24 25 26 27 28 2930October November December
Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su1 2 3 4 5 6 1 2 3 17 8 9 10 11 12 13 4 5 6 7 8 9 10 2 3 4 5 6 7 8
14 15 16 17 18 19 20 11 12 13 14 15 16 17 9 10 11 12 13 14 15
21 22 23 24 25 26 27 18 19 20 21 22 23 24 16 17 18 19 20 21 22
28 29 30 31 25 26 27 28 29 30 23 24 25 26 27 28 2930 31
>>> calendar.firstweekday()
0
>>> calendar.isleap(2019)
False
>>> calendar.isleap(2004)
True
>>> h(2019,4,w = 4,l = 3))April 2019Mon Tue Wed Thu Fri Sat Sun1 2 3 4 5 6 78 9 10 11 12 13 1415 16 17 18 19 20 2122 23 24 25 26 27 2829 30
本文发布于:2024-01-30 06:29:33,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170656737519881.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |