Python学习笔记之日期、时间的用法

阅读: 评论:0

Python学习笔记之日期、时间的用法

Python学习笔记之日期、时间的用法

日期、时间

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个模块:

  • time : time是一个仅包含与日期和时间相关的函数和常量的模块,在本模块中定义了C/C++编写的几个类。 例如,struct_time类。
  • datetime : datetime是一个使用面向对象编程设计的模块,可以在Python中使用日期和时间。它定义了几个表示日期和时间的类。
  • calendar : 日历是一个提供函数的模块,以及与Calendar相关的几个类,它们支持将日历映像生成为text,html
  • locale : 该模块包含用于格式化或基于区域设置分析日期和时间的函数。
时间间隔

时间间隔是以秒为单位的浮点数。从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
TimeTuple 时间元组

许多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 时间模块提供了处理时间

  • clock() : 将当前CPU时间返回为浮点数秒。 为了测量不同方法的计算成本,time.clock的值比time.time()的值更有用。
  • ctime() :类似于asctime(localtime(secs)),而没有参数就像asctime()
  • time.localtime([secs]): 接受从时代(epoch)以秒为单位的瞬间,并返回与本地时间相关的时间_isdst为0或1,具体取决于DST是否适用于本地规则的瞬时秒)。
  • time.mktime(tupletime) : 接受在本地时间表示为时间元组的瞬间,并返回浮点值,该时间点以秒为单位表示。参数是struct_time或完整的9个元组,它返回一个浮点数,以便与time()兼容。如果输入值不能表示为有效时间,则会引发OverflowError或ValueError异常。
  • time.sleep(secs) : 暂停调用线程 secs 秒。
  • time.strftime(fmt[,tupletime]) : 接受在本地时间表示为时间元组的瞬间,并返回一个表示由字符串fmt指定的时间的字符串。
  • time.strptime(str,fmt = ‘%a %b %d %H:%M:%S %Y’)) : 按给定格式fmt解析字符串str,返回时间元组格式的时间.
  • time.time( ) : 返回当前时间时刻,即从时代(epoch)开始的浮点数秒数。
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,表示星期一,可以通过setfirstweekday()修改默认设置.
>>> calendar.firstweekday()
0
  • calendar.isleap(year) : 给定年份为闰年则返回True
>>> 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小时内删除。

标签:学习笔记   日期   时间   Python
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23