Python程序可以处理多种方式的日期和时间。日期格式之间的转换是一种常见计算机的杂活。 Python的时间和日历模块,能帮助处理日期和时间。

Tick是什么?

为时间间隔,以秒为单位的浮点数。从“新纪元”的1月1日0点开始计算到现在的秒数(新纪元是一个与平台相关的年份,对UNIX来说是1970年)。

Python中可用的流行时间模块,可提供功能转换。如time.time()返回当前系统时间。

例子:

#!/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

什么是TimeTuple?

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

索引 字段
0 年(四位数字) 2015
1 月份 1 - 12
2 日期 1 - 31
3 小时 0 - 23
4 分钟 0 - 59
5 0 - 61 (60 或 61是闰秒)
6 星期 0 - 6 (0 为星期一)
7 一年中的第几天 1 - 366 (Julian日期)
8 夏令时 -1, 0, 1, -1 表示库决定DST

上面的元组相当于struct_time结构。这种结构具有以下属性:

索引 属性
0 tm_year 2018
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 to 6 (0 为星期一)
7 tm_yday 1 to 366 (Julian日期)
8 tm_isdst -1, 0, 1, -1 表示库决定DST

获取当前时间 :

转换一个时刻从秒epoch浮点值转换成时元组,浮点值传递给函数(例如,本地时间)返回时间元组的全部九项有效。

#!/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

获取日历月份:

日历模块提供了广泛的方法,如有年和月的日历。在这里,我们打印日历给定月份(2015年1月):

 
#!/usr/bin/python import calendar cal = calendar.month(2015, 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

time模块:

Python中可用的流行时间模块,时间之间转换提供了以下一些函数。下面是所有可用方法的列表:

SN 方法及描述
1 time.altzone
当地DST时区的偏移量,如果一个定义在UTC西部秒钟。这是负值,如果当地的DST时区为UTC东边(如西欧,包括英国)。如果白天不为零只用这个。
2 time.asctime([tupletime])
接受一个时间元组,并返回一个可读的24个字符的字符串,如“Tue Dec 11 18:07:14 2015'。
3 time.clock( )
返回当前CPU时间为几秒钟的浮点数。以测量不同方法的计算成本,time.clock的值比time.time()更有用
4 time.ctime([secs])
类似asctimeasctime(localtime(secs)),不带参数就像asctime()
5 time.gmtime([secs])
接收表示从epoch秒钟的瞬间,并返回一个时间元组t及UTC时间。注意:t.tm_isdst始终为0
6 time.localtime([secs])
将实数转化为本地时间的日期元组。如果想获得全球统一时间,可使用gmtime()
7 time.mktime(tupletime)
将日期元组转化为从新纪元开始计算的秒数,与localtime的功能相反
8 time.sleep(secs)
暂停secs秒钟调用线程
9 time.strftime(fmt[,tupletime])
接收表示为一个时间的元组中的本地时间瞬间并返回表示所指定的字符串fmt瞬间的字符串
10 time.strptime(str,fmt='%a %b %d %H:%M:%S %Y')
根据格式字符串格式化解析str并返回时间元组格式
11 time.time( )
返回当前时刻,新纪元开始后的秒数
12 time.tzset()
重置所使用的库例程的时间转换规则。环境变量TZ指定如何完成此操作。

如上红色标注函数使用较频繁!

下列是时间time模块提供两个重要的属性:

SN 属性及描述
1 time.timezone
属性time.timezone是从UTC(>0,在美洲;<=0,在大多数欧洲,亚洲,非洲),抵销了本地时区的秒钟(不含DST)。
2 time.tzname
属性time.tzname是一对语言环境相关的字符串,这是本地时区的名称。

calendar 模块

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

默认情况下,日历把星期一作为一周的第一天,周日为最后一天。要改变这种情况,调用calendar.setfirstweekday()函数。

下面是日历calendar模块可用的功能列表:

SN 方法及描述
1 calendar.calendar(year,w=2,l=1,c=6)
返回为多行字符串的逐年日历格式化成用c空格分隔的三列。 w是中的每一个日期字符的宽度;每行的长度为21* w +18+2* c。 l为每个星期的行数。
2 calendar.firstweekday( )
返回当前设置为每个星期开始工作日。默认情况下,当先导入calendar,这是0,意思是星期一。
3 calendar.isleap(year)
如果今年是闰年返回true,否则为false。
4 calendar.leapdays(y1,y2)
返回范围内的总数在range(y1,y2)。
5 calendar.month(year,month,w=2,l=1)
返回为多行字符串与日历月month年year,每周一条线加上两个标题行。 w是中的每一个日期字符的宽度;每行的长度为7* W +6。 l为每个星期的行数。
6 calendar.monthcalendar(year,month)
返回整数的列表。每个子列表表示一个星期。月month年year都设置为0;在一个月内,day都被设置为一天,月份,1及以上的数字。
7 calendar.monthrange(year,month)
返回两个整数。第一个是星期几月month年year的第一天的代码;第二个是在所述月份的天数。星期代码是0(星期一)至6日(星期日);月数是1?12。
8 calendar.prcal(year,w=2,l=1,c=6)
打印类似calendar.calendar(year,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)
time.gmtime的反向:接受一个时刻在时间元组的形式,并返回同一时刻为从epoch浮点秒数。
12 calendar.weekday(year,month,day)
返回给定日期的星期代码。星期代码0(星期一)至6日(星期日);月份数字代码为1(一月)到12(12月)。

其它模块和函数:

如果有兴趣,那么在这里也要找到其他重要的模块和功能,如:日期和时间在Python使用:

Python日期时间Date/Time的更多相关文章

  1. Python日期时间函数处理

    所有日期.时间的 api 都在datetime模块内. 1 日期的格式化输出 datetime => string import datetime now = datetime.datetime ...

  2. Python 日期时间处理模块学习笔记

    来自:标点符的<Python 日期时间处理模块学习笔记> Python的时间处理模块在日常的使用中用的不是非常的多,但是使用的时候基本上都是要查资料,还是有些麻烦的,梳理下,便于以后方便的 ...

  3. Java 日期时间 Date类型,long类型,String类型表现形式的转换

    Java 日期时间 Date类型,long类型,String类型表现形式的转换 1.java.util.Date类型转换成long类型 java.util.Date dt = new Date(); ...

  4. Java 日期时间 Date类型,long类型,String类型表现形式的转换 (转)

    Java 日期时间 Date类型,long类型,String类型表现形式的转换 1.java.util.Date类型转换成long类型java.util.Date dt = new Date();Sy ...

  5. 【转载】Python日期时间模块datetime详解与Python 日期时间的比较,计算实例代码

    本文转载自脚本之家,源网址为:https://www.jb51.net/article/147429.htm 一.Python中日期时间模块datetime介绍 (一).datetime模块中包含如下 ...

  6. python日期时间处理

    time模块 #-*- coding: utf-8 -*- """ #获取当前时间的时间戳(单位秒) time.time() #推迟指定秒数后再运行 time.sleep ...

  7. python 日期 & 时间

    1. Python 提供了一个 time 和 calendar 模块可以用于格式化日期和时间. 2. 时间间隔是以秒为单位的浮点小数. 3. 每个时间戳都以自从1970年1月1日午夜(历元)经过了多长 ...

  8. Java日期时间(Date/Time)

    获取当前日期和时间 在Java中容易得到当前的日期和时间.可以使用一个简单的Date对象的toString()方法,如下所示打印当前日期和时间: import java.util.Date; publ ...

  9. python 日期时间处理

    # 获取日期: import datetime #调用事件模块 today =datetime.date.today() #获取今天日期 deltadays =datetime.timedelta(d ...

随机推荐

  1. Hashtable、synchronizedMap、ConcurrentHashMap 比较

    详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcytp18 Hashtable.synchronizedMap.Concurren ...

  2. Mac上安装openCV(Java版本)

    详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcyt410 Install and use OpenCV 3.0 on Mac O ...

  3. Centos7.2下基于Nginx+Keepalived搭建高可用负载均衡(一.基于Keepalived搭建HA体系)

    说明 本文只为方便日后查阅,不对一些概念再做赘述,网上都有很多明确的解释,也请大家先了解相关概念. 两台搭建HA的服务器是华为云上的ECS(不要忘记开通VPC,保证我们的服务器都处在一个内网环境),由 ...

  4. 为什么可以通过URL来调起APP - URL Scheme和Intent

    在手机浏览器中可以通过URL调起APP是不是很神奇?这篇文章就告诉你为什么. URL Scheme 先从前端能接触到的URL Scheme分析一下 丢wiki:https://en.wikipedia ...

  5. javascript中=,==,与===的区别;以及特殊值NaN的讲解

    1.在js中"="是作为赋值.var a;  a=3:给a赋值为3. 2."=="称作相等,"==="被称作严格相等.当使用"== ...

  6. 201521123082《Java程序设计》第4周学习总结

    201521123082<Java程序设计>第4周总结 标签(空格分隔): java 1. 本周学习总结 1.1 尝试使用思维导图总结有关继承的知识点. 1.2 使用常规方法总结其他上课内 ...

  7. 扫雷游戏制作过程(C#描述):第五节、菜单操作(续)

    前言 这里给出教程原文地址. 该项目已经放在github上托管. 发布版已经分享到百度网盘 菜单操作(续) 接着节前一章节的内容,我们继续完善菜单栏的功能. 我们首先,先完善Rank的选项,我们希望我 ...

  8. 201521123048 《Java程序设计》第4周学习总结

    1. 本周学习总结 1.1 尝试使用思维导图总结有关继承的知识点. 1.2 使用常规方法总结其他上课内容. 1.多态:使用单一接口操作多种类型的对象. 2.private修饰属性,public修饰方法 ...

  9. 201521123074 《Java程序设计》第2周学习总结

    1.本周学习总结 学习了string类的一些用法,Java编写大致与c相同,但是要注意Java是面向对象的语言.例如两个字符串"=="比较,Java与c可能会有不同结果. 学习了i ...

  10. Python[小甲鱼007了不起的分支和循环]

    加载背景音乐播放背景音乐(设置单曲循环)我方飞机诞生interval = 0while True:if 用户是否点击关闭按钮退出程序breakinterval += 1if interval = 50 ...