Python3基础知识6

1 时间和日期

Python 程序能用很多方式处理日期和时间,转换日期格式是一个常见的功能。
Python 提供了一个 time 和 calendar 模块可以用于格式化日期和时间。
时间间隔是以秒为单位的浮点小数。
每个时间戳都以自从1970年1月1日午夜(历元)经过了多长时间来表示。
Python 的 time 模块下有很多函数可以转换常见日期格式。如函数time.time()用于获取当前时间戳, 例如:

1
2
3
#!/usr/bin/env python3
ticks = time.time()
print ("当前时间戳为:", ticks)

输出结果:

1
当前时间戳为: 1525748174.8730757

目前,UNIX和Windows只支持到2038年。

1.1 时间元组

序号 属性
0 tm_year 2008
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 (60或61 是闰秒)
6 tm_wday 0到6 (0是周一)
7 tm_yday 一年中的第几天,1 到 366
8 tm_isdst 是否为夏令时,值有:1(夏令时)、0(不是夏令时)、-1(未知),默认 -1

1.2 获取当前详细时间

从返回浮点数的时间辍方式向时间元组转换,只要将浮点数传递给如localtime之类的函数。

1
2
3
#!/usr/bin/env python3
a = time.localtime(time.time())
print ("本地时间为 :", a)

输出结果:

1
本地时间为 : time.struct_time(tm_year=2018, tm_mon=5, tm_mday=8, tm_hour=11, tm_min=17, tm_sec=58, tm_wday=1, tm_yday=128, tm_isdst=0)

1.3 获取格式化时间

你可以根据需求选取各种格式,但是最简单的获取可读的时间模式的函数是asctime():

1
2
3
#!/usr/bin/env python3
a = time.localtime(time.time())
print ("本地时间为 :", a)

输出结果:

1
本地时间为 : Tue May  8 11:32:04 2018

1.4 格式化日期

1
2
3
4
5
6
7
8
9
10
11
# 格式化成2018-05-08 11:39:58形式
print (time.strftime("%Y-%m-%d %H:%M:%S", \
time.localtime()))

# 格式化成Tue May 08 11:39:58 2018形式
print (time.strftime("%a %b %d %H:%M:%S %Y", \
time.localtime()))
# 将格式字符串转换为时间戳
a = "Tue May 08 11:39:58 2018"
print (time.mktime(time.strptime(a,"%a %b %d \
%H:%M:%S %Y")))

输出结果:

1
2
3
2018-05-08  11:44:52
Tue May 08 11:44:52 2018
1525750798.0

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 当前时区的名称
  • %% %号本身

1.5 获取某月日历

Calendar模块有很广泛的方法用来处理年历和月历,例如打印某月的月历:

1
2
3
cal =  calendar.month(2018, 6)
print ("以下输出2016年1月份的日历:")
print (cal)

输出结果:

1
2
3
4
5
6
7
8
以下输出2016年1月份的日历:
June 2018
Mo Tu We Th Fr Sa Su
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30

2 Time 模块

文章作者: Sirius65535
文章链接: http://sirius.ink/2018/04/30/Python3基础知识6/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Sirius' Notes