python的日期处理

下面一段代码是根据给定的日期范围然后来生成一个日期列表,但存放的格式为可转为日期的浮点或整数型数值。 #hi.baidu.com/muinlive

#! /usr/bin/env python
#! -*- coding:utf-8 -*-

import time
def ExpandDateList(DateList):
    Dlist=[]
    tlist=[] #hi.baidu.com/muinlive
    for s in DateList:
        tlist=s.split(':')
        i=len(tlist)
        if (i==1):
            s=str(tlist[0])
            try:
                d1=time.strptime(s,'%Y-%m-%d') #hi.baidu.com/muinlive
                t1=time.mktime(d1)
                Dlist.extend([t1])
            except: #hi.baidu.com/muinlive
                print s+" 为无效日期。"
                continue
        elif (i==2):
            s1=str(tlist[0])
            try:
                d1=time.strptime(s1,"%Y-%m-%d")
                t1=time.mktime(d1)
            except:
                print s1+" 为无效日期。"
                continue
            s2=str(tlist[1])
            try: #hi.baidu.com/muinlive
                d2=time.strptime(s2,"%Y-%m-%d")
                t2=time.mktime(d2)
            except:
                print s2+" 为无效日期。"
                continue
            if (t1>t2):
                t3=t1
                t1=t2
                t2=t3#hi.baidu.com/muinlive
            tdaystep=86400# 一天的秒数24*60*60
            Dlist.extend(range(int(t1),int(t2),tdaystep))
            Dlist.extend([t2])                  
    return Dlist

下面对用到的函数进行解释一下。
#hi.baidu.com/muinlive
d1=time.strptime(s,'%Y-%m-%d')#hi.baidu.com/muinlive
strptime( date_string, format )函数time模块中用来将日期字符串date_string按指定的格式format进行转换,format是要以date_string对应的。如果转换失败将触发一个异常。
format转义符对应意义如下
%a 本地简化星期名称
%A 本地完整星期名称
%b 本地简化的月份名称
%B 本地完整的月份名称
%c 本地相应的日期表示和时间表示
%d 月内中的一天(0-31)
%H 24小时制小时数(0-23)
%I 12小时制小时数(01-12)
%j 年内的一天(001-366) #hi.baidu.com/muinlive
%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 当前时区的名称
%% %号本身
#hi.baidu.com/muinlive
示例结果
>>> d1=time.strptime('2007/4/15','%Y/%m/%d')

>>> d1
(2007, 4, 15, 0, 0, 0, 6, 105, -1)


t1=time.mktime(d1)
mktime()是将time对象转为一个浮点数。然后可以用localtime()再将浮点数转为time对象。
#hi.baidu.com/muinlive
>>> t1=time.mktime(d1)
>>> d2=time.localtime(t1)
>>> t1
1176566400.0
>>> d2
(2007, 4, 15, 0, 0, 0, 6, 105, 0)
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值