python date and time - QLGQ/learning-python GitHub Wiki
Introduction
- Python程序能用很多方式处理日期和时间,转换日期格式是一个常见的功能。
- Python提供了一个time和calendar模块可以用于格式化日期和时间。
- 时间间隔是以秒为单位的浮点小数。
- 每个时间戳都以自从1970年1月1日午夜(历元)经过了多长时间来表示。
Python 的 time 模块下有很多函数可以转换常见日期格式。如函数time.time()用于获取当前时间戳, 如下实例:
#!/usr/bin/python
# -*- coding:UTF-8 -*-
import time; #引入time模块
ticks = time.time()
print "当前时间戳:", ticks
以上实例输出结果:
当前时间戳为:1459994552.51
时间戳单位最适于做日期运算。但是1970年之前的日期就无法以此表示了。太遥远的日期也不行,UNIX和Windows只支持到2038年。
Time Tuple
序号 | 字段 | 值 |
---|---|---|
0 | 4位数年 | 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元组。这种结构具有如下属性:
序号 | 属性 | 值 |
---|---|---|
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是决定是否为夏令时的旗帜 |
Time Module
Time模块包含了一些内置函数,既有时间处理的,也有转换时间格式的:
序号 | 函数 | 描述 |
---|---|---|
1 | time.time() | 返回当前时间的时间戳(1970纪元后经过的浮点秒数) |
2 | time.ctime([secs]) | 作用相当于asctime(localtime(secs)),未给参数相当于asctime() |
3 | time.sleep(secs) | 推迟调用线程的运行,secs指秒数 |
4 | time.asctime([tupletime]) | 接受时间元组并返回一个可读的形式为"Tue Dec 11 18:07:14 2008"(2008年12月11日 周二18时07分14秒)的24个字符的字符串。 |
5 | time.localtime([secs]) | 接收时间辍(1970纪元后经过的浮点秒数)并返回当地时间下的时间元组t(t.tm_isdst可取0或1,取决于当地当时是不是夏令时)。 |
Calendar Module
序号 | 函数 | 描述 |
---|---|---|
1 | calendar.calendar(year,w=2,l=1,c=6) | 返回一个多行字符串格式的year年年历,3个月一行,间隔距离为c。 每日宽度间隔为w字符。每行长度为21* W+18+2* C。l是每星期行数。 |
2 | calendar.isleap(year) | 是闰年返回True,否则为false。 |
3 | calendar.firstweekday( ) | 返回当前每周起始日期的设置。默认情况下,首次载入caendar模块时返回0,即星期一。 |
Others
在Python中,其他处理日期和时间的模块还有: