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. ios 初体验<UILabel控件>

    创建控件: UILabel *label = [[UILabel alloc]init]; //设置控件大小 label.frame = CGRectMake(50,100,300,40);//分别为 ...

  2. Google推出移动网页开发者认证考试 价格99美元

    如果您是移动网页开发人员,希望了解您的编码实力,Google将推出一个认证流程,让您可以参加考试,如果您通过,可以在您的简历,网站和其他在线上显示电子徽章配置文件.           此外,潜在的雇 ...

  3. [C#] .Net Core 全局配置读取管理方法 ConfigurationManager

    最近在学习.Net Core的过程中,发现.Net Framework中常用的ConfigurationManager在Core中竟然被干掉了. 也能理解.Core中使用的配置文件全是Json,不想F ...

  4. webpack2学习日志

    webpack说容易也容易,说难也难,主要还是看个人,想学到什么样的程度,很多公司可能要求仅仅是会用就行,但是也有一些公司要求比较高,要懂一些底层的原理,所以还是要花一些时间的,看个人需求.这篇仅仅是 ...

  5. 转: 深入Java虚拟机】之二:Class类文件结构

    转载请注明出处:http://blog.csdn.net/ns_code/article/details/17675609 平台无关性 Java是与平台无关的语言,这得益于Java源代码编译后生成的存 ...

  6. 结构体(struct)大小

    结构体(struct)大小 本文参考链接:C语言结构体(struct)常见使用方法,链接中的实例代码经实践有几处不准确,本文在引用时已做更改 注意:在结构体定义时不能申请空间(除非是结构体变量),不可 ...

  7. 团队作业3--需求改进&系统设计

    小学生四则运算练习软件APP 一.需求&原型改进 1.给目标用户展现原型,与目标用户进一步沟通理解需求 我们的主要目标用户是小学生,次要目标用户是小学教师 场景一:小明一个三年级的学生,放学回 ...

  8. Swing-setOpaque()用法-入门

    先看API: public void setOpaque(boolean isOpaque) 如果为 true,则该组件绘制其边界内的所有像素.否则该组件可能不绘制部分或所有像素,从而允许其底层像素透 ...

  9. 201521123056 《Java程序设计》第6周学习总结

    1. 本周学习总结 1.1 面向对象学习暂告一段落,请使用思维导图,以封装.继承.多态为核心概念画一张思维导图,对面向对象思想进行一个总结. 注1:关键词与内容不求多,但概念之间的联系要清晰,内容覆盖 ...

  10. 201521123026《JAVA程序设计》第14周学习总结

    1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多数据库相关内容. 2. 书面作业 1. MySQL数据库基本操作 建立数据库,将自己的姓名.学号作为一条记录插入.(截图,需出现自 ...