Python Times

DateTime模块

 

>>> import datetime
>>> d1 = datetime.datetime(2005, 2, 16)
>>> d2 = datetime.datetime(2004, 12, 31)
>>> (d1 - d2).days
47

上例演示了计算两个日期相差天数的计算。

import datetime
starttime = datetime.datetime.now()
#long running
endtime = datetime.datetime.now()
print (endtime - starttime).seconds

上例演示了计算运行时间的例子,以秒进行显示。

>>> d1 = datetime.datetime.now()
>>> d3 = d1 + datetime.timedelta(hours=10)
>>> d3.ctime()

上例演示了计算当前时间向后10小时的时间。

其本上常用的类有:datetime和timedelta两个。它们之间可以相互加减。每个类都有一些方法和属性可以查看具体的值,如 datetime可以查看:天数(day),小时数(hour),星期几(weekday())等;timedelta可以查看:天数(days),秒数 (seconds)等

 

Time模块:

模块名
    time - 此模块提供多种处理时间值的函数

(内建)

描述
    有两种时间的标准描述。

    一种是从时间上的一点(纪元)开始所经历的秒数,以通用协调时表示,又称为格林尼治标准时间。形式上可以是一个整数或者浮点数(用以表示比秒更高的精度)。做为开始的这个时间点是系统定义的,在UNIX系统上,通常是1970年1月1日。具体的值可以通过调用gmtime(0)得到。

    另一种表示方法是一个含有9个整数的序列,用来表示当地时间。
这9个整数分别为:
年,4个数字,比如1998
月,1-12
日,1-31
小时,0-23
分钟,0-59
秒,0-59
星期,0-6,0表示周一。
儒略历(儒略·恺撒订定的历法) 其实就是这一天是所在年的第几天 1-366
夏令时 -1,0,1
如果夏令时为0,时间以通常时区表示。
如果夏令时为1,说明是夏令时时区的时间。
如果夏令时为-1,(不明白。。。)

变量
    timezone 通用协调时间和本地标准时间的差值,以秒为单位。
    altzone 通用协调时间和本地夏令时的差值
    daylight 标志,本地时间是否反映夏令时。
    tzname (标准时区名,夏令时时区名)

函数
    time() 以浮点数返回纪元至今以来的秒数。
    clock() 以浮点数返回CPU开始这个process的时间,(或者至上次调用这个函数的时间)
    sleep() 延迟一段以浮点数表示的秒数。
    gmtime() 把以秒表示的时间转换为通用协调时序列
    localtime() 把秒时转换为本地时序列
    asctime() 将时间序列转换成文本描述
    ctime() 将秒时转换成文本描述
    mktime() 将本地时序列转换成秒时
    strftime() 以指定格式将序列时转为文本描述
    strptime() 以指定格式从文本描述中解析出时间序列
    tzset() 改变当地时区值

 

python常用的时间方法

我们先导入必须用到的一个module
>>> import time
设置一个时间的格式,下面会用到
>>>ISOTIMEFORMAT=’%Y-%m-%d %X’
看一下当前的时间,和其他很多语言相似这是从epoch(1970 年 1 月 1 日 00:00:00)开始到当前的秒数。
>>> time.time()
1180759620.859
上面的看不懂,换个格式来看看
>>> time.localtime()
(2007, 6, 2, 12, 47, 7, 5, 153, 0)
localtime返回tuple格式的时间,有一个和它类似的函数叫gmtime(),2个函数的差别是时区,gmtime()返回的是0时区的值,localtime返回的是当前时区的值。
>>> time.strftime( ISOTIMEFORMAT, time.localtime() )
‘2007-06-02 12:54:29′
用上我们的时间格式定义了,使用strftime对时间做一个转换,如果取现在的时间,time.localtime() 可以不用。

>>> time.strftime( ISOTIMEFORMAT, time.localtime( time.time() ) )
‘2007-06-02 12:54:31′
>>> time.strftime( ISOTIMEFORMAT, time.gmtime( time.time() ) )
‘2007-06-02 04:55:02′
上面展示了gmtime和localtime的区别。
查看时区用
>>> time.timezone
-28800
上面的值是一个秒值,是当前时区和0时区相差的描述,-28800=-8*3600,即为东八区。

帖几个简单的函数

def   ISOString2Time (   s   ) :
    
'''
    convert a ISO format time to second
    from:2006-04-12 16:46:40 to:23123123
    把一个时间转化为秒
    
'''
    
return   time . strptime (   s ISOTIMEFORMAT   )
def   Time2ISOString (   s   ) :
    
'''
    convert second to a ISO format time
    from: 23123123 to: 2006-04-12 16:46:40
    把给定的秒转化为定义的格式
    
'''
    
return   time . strftime (   ISOTIMEFORMAT time . localtime (   float (   s   )   )   )
def   dateplustime (   d t   ) :
    
'''
    d=2006-04-12 16:46:40
    t=2小时
   return  2006-04-12 18:46:40
   计算一个日期相差多少秒的日期,time2sec是另外一个函数,可以处理,3天,13分钟,10小时等字符串,回头再来写这个,需要结合正则表达式。
    
'''
    
return   Time2ISOString (   time . mktime (   ISOString2Time (   d   )   ) + time2sec (   t   )   )
def   dateMinDate (   d1 d2   ) :
    
'''
    minus to iso format date,return seconds
    计算2个时间相差多少秒
    
'''
    
d1 = ISOString2Time (   d1   )
    
d2 = ISOString2Time (   d2   )
    
return   time . mktime (   d1   ) - time . mktime (   d2   )
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值