python 日期相关的各种操作总结

来源:互联网 发布:怎么调用c语言中的函数 编辑:程序博客网 时间:2024/05/29 08:58
用 Python 做项目时,经常会遇到与日期转换相关,日期计算相关的功能,动不动就要去查python手册,感觉麻烦,因此把自己常用的一些东西,总结了一下,总体说来到目前为止遇到如下一些需求:
1. 用python 把datetime转成字符串
2. 用python 把字符串转成datetime
3. 用python 把字符串转成时间戳形式
4. 用python 把时间戳转成字符串形式
5. 用python 把把datetime类型转外时间戳形式
6. 用python 计算两个日期之间的差
7. 用python 计算两个日期的 timestamp 差值
8. 用python 比较两个日期的大小
9. 指定日期加上 一个时间段,天,小时,或分钟之后的日期 

下面是测试代码:

#coding:utf-8'''base on python 2.7Created on 2012-12-14@author: yiahomen.com'''import datetimeimport timedef datetime_toString(dt):    """把datetime转成字符串"""    return dt.strftime("%Y-%m-%d")def string_toDatetime(string):    """把字符串转成datetime"""    return datetime.datetime.strptime(string, "%Y-%m-%d")def string_toTimestamp(strTime):    """把字符串转成时间戳形式"""    return time.mktime(string_toDatetime(strTime).timetuple())def timestamp_toString(stamp):    """把时间戳转成字符串形式"""    return time.strftime("%Y-%m-%d-%H", time.localtime(stamp))def datetime_toTimestamp(dateTime):    """把datetime类型转外时间戳形式"""    return time.mktime(dateTime.timetuple())def substract_DateTime(dateStr1,dateStr2):    """ 返回两个日期之间的差 """    d1=string_toDatetime(dateStr1)    d2=string_toDatetime(dateStr2)    return d2-d1def substract_TimeStamp(dateStr1,dateStr2):    """ 两个日期的 timestamp 差值 """    ts1= string_toTimestamp(dateStr1)    ts2= string_toTimestamp(dateStr2)    return ts1-ts2def compare_dateTime(dateStr1,dateStr2):    """两个日期的比较, 当然也可以用timestamep方法比较,都可以实现."""    date1 = string_toDatetime(dateStr1)    date2 = string_toDatetime(dateStr2)    return date1.date()>date2.date()def dateTime_Add(dateStr,days=0,hours=0,minutes=0):    """ 指定日期加上 一个时间段,天,小时,或分钟之后的日期 """    date1= string_toDatetime(dateStr)    return date1+datetime.timedelta(days=days,hours=hours,minutes=minutes)if __name__=='__main__':    print substract_DateTime('2012-12-12','2012-01-01')    #-346 days, 0:00:00    print substract_DateTime('2012-12-12','2012-01-01').days    #-346    print substract_TimeStamp('2012-12-12','2012-01-01')    #29894400.0        print substract_TimeStamp('2012-12-12','2012-01-01')/(24*60*60),'天'    #346.0 天    print compare_dateTime('2012-12-12','2012-01-01')    #True    print dateTime_Add('2012-12-12',days=10,hours=5,minutes=10)    #2012-12-22 05:10:00

原创粉丝点击