个性化阅读
专注于IT技术分析

python日期和时间介绍处理及其操作详解 – Python入门开发教程

上一章Python教程请查看:python字典dictionary类型用法及其操作函数

Python程序可以以多种方式处理日期和时间,在日期格式之间进行转换是计算机的常见任,Python的时间和日历模块帮助跟踪日期和时间。

1、计算时间滴答数

时间间隔是浮点数,以秒为单位,从1970年1月1日凌晨12点(纪元)开始,时间上的特定瞬间用秒表示。

Python中有一个流行的时间模块,它提供了处理时间和在表示之间进行转换的函数,time()函数返回自1970年1月1日(epoch)凌晨12点起的当前系统时间。

#!/usr/bin/python
import time;  # 这需要包含时间模块。

ticks = time.time()
print "自1970年1月1日凌晨12点以来的滴答次数:", ticks

日期运算很容易用刻度表示,但是纪元之前的日期不能用这种形式表示,远将来的日期也不能用这种方式表示——UNIX和Windows的截止时间是2038年。

2、时间元组

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

索引 属性
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表示库决定DST

上面的元组等价于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
6 tm_wday 0到6 (0为星期一)
7 tm_yday 1到366
8 tm_isdst – 1,0,1, -1表示库决定DST

3、获取当前时间

要将时间瞬间从历元浮点值开始的一秒转换为时间元组,需要将浮点值传递给一个函数(例如localtime),该函数返回一个包含所有9个有效项的时间元组。

#!/usr/bin/python
import time;

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

4、获取格式化的时间

你可以根据你的需求格式化任何时间,但是以可读格式获得时间的简单方法是asctime()−

#!/usr/bin/python
import time;

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

5、获取一个月的日历

日历模块提供了各种方法来处理年历和月历,在这里我们打印一个特定月份(2008年1月)的日历:

#!/usr/bin/python
import calendar

cal = calendar.month(2008, 1)
print "日历:"
print cal

6、时间模块

Python中有一个流行的时间模块,它提供处理时间和在表示之间转换的函数。这里列出了所有可用的方法

编号 函数和描述
1 time.altzone 本地DST时区的偏移,在UTC以西以秒为单位,如果定义了偏移的话。如果当地的DST时区在UTC以东(如西欧,包括英国),则为负。只在日光非零时使用。
2 time.asctime([tupletime]) 接受一个时间元组并返回一个可读的24个字符的字符串,如“Tue Dec 11 18:07:14 2008”。
3 time.clock( ) 以浮点数(秒)返回当前CPU时间。衡量计算成本的不同方法,时间的价值。时钟比时间更有用。
4 time.ctime([secs]) 比如asctime(localtime(secs)),没有参数就像asctime()
5 time.gmtime([secs]) 接受从纪元开始以秒为单位表示的瞬间,并返回一个带有UTC时间的时间元组t。注:t。tm_isdst总是0
6 time.localtime([secs]) 接受自纪元以来以秒为单位表示的瞬间,并返回一个包含本地时间(t)的时间元组t。tm_isdst是0还是1,取决于DST是否根据本地规则应用于瞬间秒)。
7 time.mktime(tupletime) 接受以本地时间表示的时间元组的瞬时值,并返回自epoch以来以秒表示的瞬时值的浮点值。
8 time.sleep(secs) 挂起调用时间为秒的线程。
9 time.strftime(fmt[,tupletime]) 接受在本地时间中表示为时间元组的瞬时值,并返回由字符串fmt指定的表示瞬时值的字符串。
10 time.strptime(str,fmt=’%a %b %d %H:%M:%S %Y’) 根据格式字符串fmt解析str,并以时间元组格式返回瞬时值。
11 time.time( ) 返回当前时间瞬间,这是自epoch以来的浮点秒数。
12 time.tzset() 重置库例程使用的时间转换规则。环境变量TZ指定这是如何完成的。

让我们简单地过一遍这些函数

时间模块有以下两个重要的特性

编号 属性和描述
1 time.timezone 时间属性。时区是指从UTC(美洲的>)到当地时区(不包括DST)的秒数偏移量;<=0在大多数欧洲,亚洲,非洲)。
2 time.tzname tzname是一对与地区相关的字符串,它们分别是没有DST和有DST的本地时区的名称。

7、日历模块

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

默认情况下,日历以周一为一周的第一天,以周日为最后一天。要改变这一点,请调用calendar.setfirstweekday()函数。

下面是calendar模块提供的函数列表

编号 方法和说明
1 calendar.calendar(year,w=2,l=1,c=6) 返回一个多行字符串,该字符串带有一个year year格式的日历,该日历被格式化为三列,用c空格分隔。w是每个日期的字符宽度;每一行的长度是21*w+18+2*c。l是每周的行数。
2 calendar.firstweekday( ) 返回每周开始的工作日的当前设置。默认情况下,首次导入日历时,这是0,表示星期一。
3 calendar.isleap(year) 如果年份是闰年,返回True;否则false。
4 calendar.leapdays(y1,y2) 返回范围内年份的闰日总数(y1,y2)。
5 calendar.month(year,month,w=2,l=1) 返回一个多行字符串,其中包含一个日历,表示某年的某月,每周一行加上两行标题行。w是每个日期的字符宽度;每一行的长度是7*w+6。l是每周的行数。
6 calendar.monthcalendar(year,month) 返回一个int列表的列表。每个子列表表示一个星期。年月日为0;年月日为0;一个月中的天数被设置为每个月的第一天或以上。
7 calendar.monthrange(year,month) 返回两个整数。第一个是年月日的工作日代码;第二个是一个月的天数。平日代码为0(星期一)至6(星期日);月数是1到12。
8 calendar.prcal(year,w=2,l=1,c=6) 类似打印calendar.calendar (w, l, c)。
9 calendar.prmonth(year,month,w=2,l=1) 类似calendar.month(year,month,w,l).
10 calendar.setfirstweekday(weekday) 设置每周的第一天到工作日代码工作日。平日代码是0(星期一)到6(星期日)。
11 calendar.timegm(tupletime) 时间的倒数。gmtime:接受时间元组形式的时间瞬间,并返回与自epoch以来的浮点秒数相同的瞬间。
12 calendar.weekday(year,month,day) 返回给定日期的工作日代码。平日代码为0(星期一)至6(星期日);月数是1(1月)到12(12月)。

8、其他模块及功能

如果你感兴趣,那么在这里你可以找到一系列其他重要的模块和函数,可以在Python中使用日期和时间

  • datetime模块
  • pytz模块
  • dateutil模块
赞(0)
未经允许不得转载:srcmini » python日期和时间介绍处理及其操作详解 – Python入门开发教程

评论 抢沙发

评论前必须登录!