Python札记47_日期和时间相关标准库

浏览: 1287

在生活中,我们每个人总是和日期、时间打交道。在 Python中有关于时间的模块来实现。

  • calendar
  • time
  • datatime

calendar模块

calendar是和日历相关的库,看下具体文档:

>>import calendar
>>dir(calendar)
...(省略部分)
'calendar', # 返回某年的日历
'datetime',
'isleap', # isleap(year) 判断是否是闰年
'month', # 返回某个月份
'leapdays', # leapdays(y1,y2) 返回的是两年之间的闰年总数
'weekday' # weekday(year, month, day)输入参数年月日返回的是星期几
...(省略部分)
data1 = calendar.month(2019, 7)   # month ()方法
print(data1)

image.png

  • month() 返回某个月
  • calendar(year, w=2, l=1, c=6):3个月一行,间距为c,每日宽度为w
  • isleap(year):判断是否是闰年
  • leapdays(y1, y2):判断两个年份时间中闰年数




    image.png


time模块

time模块是非常常用的模块,比如计算某个程序运行的时间长短。

time()

time.time()获取的是当前时间(严格地说是时间戳,以1970年1月1日00:00:00开始计时)。

  • timestamp:是指在一连串的数据中心加入辨识文字,如时间或者日期等,用以保障本地端local和远程remote一致。

localtime()

localtime()方法中总共会获取9个数据:

time.localtime()
Out[6]: time.struct_time(tm_year=2019, tm_mon=7, tm_mday=17, tm_hour=23, tm_min=26, tm_sec=30, tm_wday=2, tm_yday=198, tm_isdst=0)

image.png

image.png

  • localtime()方法是有参数的,可以用时间戳来传入,来获取当前的时间。
time.localtime(1000)
Out[7]: time.struct_time(tm_year=1970, tm_mon=1, tm_mday=1, tm_hour=8, tm_min=16, tm_sec=40, tm_wday=3, tm_yday=1, tm_isdst=0)

gmtime()

localtime()得到的是本地时间,gmtime()得到的是国际化时间。

astime()

  • time.astime()的参数为空时,默认是time.localtime()的值为参数,得到的是当前日期、时间和星期。
  • time.astime()的参数必须是元组形式




    image.png

ctime()

  • 不写参数的话,默认和asctime()方法相同
  • 参数必须是时间戳的格式
time.ctime()
Out[3]: 'Thu Jul 18 22:31:21 2019' # 结果和asctime()
time.ctime(100000)
Out[4]: 'Fri Jan 2 11:46:40 1970' # 参数必须是时间戳形式

mktime()

以时间元组为参数,返回的时间戳格式。

b = time.localtime()
b
Out[6]: time.struct_time(tm_year=2019, tm_mon=7, tm_mday=18, tm_hour=22, tm_min=44, tm_sec=34, tm_wday=3, tm_yday=199, tm_isdst=0)
time.mktime(b) # 传入时间元组格式
Out[7]: 1563461074.0 # 返回的是时间戳格式

小结

image.png

strftime()

将时间元组按照指定格式转化为字符串,如果不指定时间元组,默认是localtime()的值。时间元组--->字符串

image.png

image.png

time.strftime("%y-%m-%d")
Out[8]: '19-07-18'
time.strftime("%Y-%m-%d")
Out[9]: '2019-07-18'
time.strftime("%c")
Out[10]: 'Thu Jul 18 23:20:50 2019'
time.strftime("%y-%m-%d-%H-%M-%S")
Out[11]: '19-07-18-23-20-58'

strptime()

将字符串转化为时间元组。参数有两个:一个是字符串,一个是时间字符串所对应的格式(见上表)。字符串--->时间元组

a = time.strftime("%y-%m-%d")
a
Out[15]: '19-07-18'
time.strptime(a, "%y-%m-%d")
Out[16]: time.struct_time(tm_year=2019, tm_mon=7, tm_mday=18, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=3, tm_yday=199, tm_isdst=-1)

datetime()模块

  • date:日期类,常见的属性:year/month/day
  • time:时间类,常见的属性:hour/minute/second/microsecond
  • datetime:日期时间类
  • timedelta:时间间隔,两个时间之间的时间长度
  • tzinfo:时区类

image.png

image.png

image.png

推荐 0
本文由 皮大大 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。
转载、引用前需联系作者,并署名作者且注明文章出处。
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

0 个评论

要回复文章请先登录注册