ITPub博客

首页 > Linux操作系统 > Linux操作系统 > python,时间加减,时间计算,时间格式化,时间提取汇总

python,时间加减,时间计算,时间格式化,时间提取汇总

原创 Linux操作系统 作者:greenteazsh 时间:2011-06-23 18:23:46 0 删除 编辑
我要解决的问题是,发现某个文件超过30分钟时间不被更新,则报警

>>> t1=[2010,11,9,19,20,30] #2010年11月9日 19:30:30
>>> last_time=datetime.datetime(t1[0],t1[1],t1[2].t1[3],t1[4],t1[5]) #上次更新时间
>>> now_time = datetime.datetime.now() #当前时间
>>> #以下是亮点
>>> mkt_last = time.mktime(last_time.timetuple())
>>> mkt_now = time.mktime(now_time.timetuple())
>>> delt_time = (mkt_now-mkt_last)/60   #转成分钟
>>> if (delt_time -30) > 0 :
>>>     print "超过30分钟没有更新啦!"

这是我在解决问题时,发现的其他一些有用的函数,呵呵,留着备用吧

计算两个时间的差,如两个时间相差几天,几小时等
1.计算两个日期相差天数的计算
>>> import datetime
>>> d1 = datetime.datetime(2005, 2, 16)
>>> d2 = datetime.datetime(2004, 12, 31)
>>> (d1 - d2).days
输出结果:47

2.计算两个时间相差的秒数
>>> import datetime
>>> starttime = datetime.datetime.now()
>>> #long running
>>> endtime = datetime.datetime.now()
>>> print (endtime - starttime).seconds

3.计算当前时间向后10小时的时间
>>> d1 = datetime.datetime.now()
>>> d3 = d1 + datetime.timedelta(hours=10)
>>> d3.ctime()


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

4.日期的操作必须使用time或datetime库
import time
>>> s="2006-1-2"
>>> time.strptime(s,"%Y-%m-%d)
这是将字符串格式的日期及时间转成日期对象
转义符对应意义如下
%a 本地简化星期名称
%A 本地完整星期名称
%b 本地简化的月份名称
%B 本地完整的月份名称
%c 本地相应的日期表示和时间表示
%d 月内中的一天(0-31)
%H 24小时制小时数(0-23)
%I 12小时制小时数(01-12)
%j 年内的一天(001-366)
%m 月份(01-12)
%M 分钟数(00=59)
%p 本地A.M.或P.M.的等价符
%S 秒(00-59)
%U 一年中的星期数(00-53)星期天为星期的开始
%w 星期(0-6),星期天为星期的开始
%W 一年中的星期数(00-53)星期一为星期的开始
%x 本地相应的日期表示
%X 本地相应的时间表示
%y 两位数的年份表示(00-99)
%Y 四位数的年份表示(000-9999)
%Z 当前时区的名称
%% %号本身

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/9521459/viewspace-700612/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2011-01-13

  • 博文量
    51
  • 访问量
    192008