Python - 日期和时间

Python程序可以通过多种方式处理日期和时间.日期格式之间的转换是计算机的常见工作. Python的时间和日历模块有助于跟踪日期和时间.

什么是Tick?

时间间隔是以秒为单位的浮点数.特定的时间瞬间以1970年1月1日凌晨12:00(纪元)的秒数表示.

Python提供了一个流行的时间模块,提供用于处理时间和在表示之间进行转换的函数.函数 time.time()以1970年1月1日凌晨12:00(纪元)以来的当前系统时间返回当前系统时间.

示例

#!/usr/bin/python
import time;  # This is required to include time module.

ticks = time.time()
print "Number of ticks since 12:00am, January 1, 1970:", ticks

这会产生如下结果:<

Number of ticks since 12:00am, January 1, 1970: 7186862.73399

日期算术很容易用滴答.但是,时期之前的日期无法以此形式表示.远期未来的日期也无法用这种方式表示 - 截止点是2038年UNIX和Windows的某个时间点.

什么是TimeTuple?

许多Python的时间函数将时间作为9个数字的元组处理,如下所示 :

索引字段
04-digit year2008
1Month1到12
2Day1到31
3Hour0到23
4Minute0到59
5Second0到61(60或61是闰秒)
6Day of Week0到6(0是星期一)
7Day of year1到366(朱利安日)
8Daylight savings-1,0,1,-1表示库确定DST

上面的元组相当于 struct_time 结构.此结构具有以下属性 :

索引属性
0tm_year2008
1tm_mon1到12
2tm_mday1到31
3tm_hour0到23
4tm_min0到59
5tm_sec0到61(60或61是闰秒)
6tm_wday0到6(0是星期一)
7tm_yday1到366(朱利安日)
8tm_isdst-1,0,1,-1表示库确定DST

获取最新信息时间

要将时间点从自纪元浮点值开始的秒转换为时间元组,请将浮点值传递给函数(例如,本地时间)返回时间元组与所有九个项目有效.

#!/usr/bin/python
import time;

localtime = time.localtime(time.time())
print "Local current time :", localtime

这将产生以下结果,可以用任何其他可呈现的形式格式化 :

Local current time : time.struct_time(tm_year=2013, tm_mon=7, 
tm_mday=17, tm_hour=21, tm_min=26, tm_sec=3, tm_wday=2, tm_yday=198, tm_isdst=0)

获取格式化时间

您可以根据需要随时设置格式,但是以可读格式获取时间的简单方法是asctime() :

#!/usr/bin/python
import time;

localtime = time.asctime( time.localtime(time.time()) )
print "Local current time :", localtime

这将产生以下结果 :

Local current time : Tue Jan 13 10:17:09 2009

获取一个月的日历

日历模块提供了多种方法来播放年度和月度日历.在这里,我们打印给定月份的日历(2008年1月) :

#!/usr/bin/python
import calendar

cal = calendar.month(2008, 1)
print "Here is the calendar:"
print cal

这会产生以下结果 :

Here is the calendar:
   January 2008
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 31

时间模块

Python中有一个流行的 time 模块,它提供了处理时间和表示之间转换的功能.以下是所有可用方法的列表 :

Sr.No.功能描述
1time.altzone

本地DST时区的偏移量,以UTC为单位的秒数(如果已定义).如果当地DST时区在UTC以东(如在西欧,包括英国),则这是否定的.只有在日光非零的情况下才能使用它.

2time.asctime([tupletime])

接受的时间 - 元组,并返回一个可读的24个字符的字符串,例如'Tue Dec 11 18:07:14 2008'.

3time.clock()

以浮点秒数形式返回当前CPU时间.为了测量不同方法的计算成本,time.clock的值比time.time()更有用.

4time.ctime([secs])

像asctime(localtime(secs))和没有参数就像asctime()

5time.gmtime([secs])

接受自纪元以来以秒为单位表示的瞬间,并返回UTC时间的时间元组t.注意:t.tm_isdst始终为0

6time.localtime([secs])

接受以秒为单位的瞬间表示epoch并返回一个带有本地时间的时间元组t(t.tm_isdst为0或1,具体取决于DST是否适用于本地规则的即时秒).

7时间.mktime(tupletime)

接受以当地时间表示为时间元组的瞬间,并返回一个浮点值,以及自纪元以来的秒数表示的瞬间.

8time.sleep(secs)

暂停调用线程几秒钟.

9time.strftime(fmt [,tupletime])

接受以本地时间表示为时间元组的瞬间,并返回表示字符串fmt指定的瞬间的字符串.

10time.strptime(str,fmt ='%a%b%d%H:%M:%S%Y')

根据格式字符串fmt解析str并以时间元组格式返回瞬间.

11time.time()

返回当前时刻,即自纪元以来的浮点秒数.

12time.tzset()

重置库例程使用的时间转换规则.环境变量TZ指定了如何完成.

让我们简单地看一下这些函数.

时间模块和减号有以下两个重要属性;

Sr.No.属性with Description
1

time.timezone

属性time.timezone是UTC的本地时区(没有DST)的偏移量(在美洲大于0;< =在大多数欧洲,亚洲,非洲都有0.

2

time.tzname

属性time.tzname是一对依赖于语言环境的字符串,它们是没有和有DST的本地时区.

日历模块

日历模块提供与日历相关的功能,包括打印给定月份或年份的文本日历的功能.

默认情况下,日历将星期一视为一周的第一天而星期日是最后一个.要更改此设置,请调用calendar.setfirstweekday()函数.

以下是日历模块可用的函数列表 :

Sr.No.功能描述
1

calendar.calendar(年份,w = 2,l = 1,c = 6)

返回一个多行字符串,其中包含年份日历,格式化为由c空格分隔的三列. w是每个日期的字符宽度;每行的长度为21 * w + 18 + 2 * c. l是每周的行数.

2

calendar.firstweekday()

返回每周开始的工作日的当前设置.默认情况下,首次导入日历时,这是0,表示星期一.

3

calendar.isleap(年)

如果年份是闰年,则返回True;否则,错误.

4

calendar.leapdays(y1,y2)

返回范围(y1,y2)内年份的闰天总数.

5

calendar.month(年,月,w = 2,l = 1)

返回一个多行字符串,其中包含一年中月份的日历,每周一行加上两个标题行. w是每个日期的字符宽度;每行的长度为7 * w + 6. l是每周的行数.

6

calendar.monthcalendar(年,月)

返回整数列表的列表.每个子列表表示一周.一年中月外的天数设为0;月内的日期设置为月日,1日及以上.

7

calendar.monthrange(年,月)

返回两个整数.第一个是年中第一天的工作日代码;第二个是该月的天数.工作日代码为0(星期一)至6(星期日);月数是1到12.

8

calendar.prcal(年,w = 2,l = 1,c = 6)

喜欢打印calendar.calendar(年份) ,w,l,c).

9

calendar.prmonth(年,月,w = 2,l = 1)

喜欢打印calendar.month(年,月,w,l).

10

calendar.setfirstweekday(工作日)

将每周的第一天设置为工作日代码工作日.工作日代码为0(星期一)至6(星期日).

11

calendar.timegm(元组时间)

time.gmtime的倒数:接受时间瞬间-tuple形式并返回与纪元以来的浮点数秒相同的瞬间.

12

calendar.weekday(年,月,日)

返回给定日期的工作日代码.工作日代码为0(星期一)至6(星期日);月数是1(1月)到12(12月).

其他模块&功能

如果您有兴趣,那么您可以在这里找到其他重要模块和功能列表,以及日期和时间.时间在Python :

  • datetime 模块

  • pytz 模块

  • dateutil 模块