Python日期处理常见操作与代码示例
本文汇总了Python中常用的日期处理技巧,涵盖字符串与datetime对象的相互转换、时间戳的获取与转换、两个日期之间的差值计算、日期大小比较以及指定时间段的加减运算。通过具体代码示例,帮助开发者快速掌握Python日期操作的核心方法,避免频繁查阅文档。
Python日期处理概述
本文分享了Python中关于日期处理的常见操作实例,供读者参考学习。
在Python项目开发过程中,日期转换与日期计算是高频需求。为了避免每次遇到此类问题时反复查阅官方文档带来的不便,本文对日常开发中常用的日期处理场景进行了整理和总结。
常见日期处理需求
目前总结的需求主要包含以下九类: 1. 将datetime对象转换为字符串格式。 2. 将字符串解析为datetime对象。 3. 将字符串转换为Unix时间戳格式。 4. 将Unix时间戳转换为字符串格式。 5. 将datetime类型转换为时间戳格式。 6. 计算两个日期之间的天数差。 7. 计算两个日期的时间戳差值。 8. 比较两个日期的大小关系。 9. 在指定日期的基础上,增加指定的天数、小时数或分钟数,并获取新日期。
以下是针对上述需求编写的测试代码实现。
核心功能代码实现
#coding:utf-8
'''
base on python 2.7
Created on 2012-12-14
@author: yiahomen.com
'''
import datetime
import time
def 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-d1
def substract_TimeStamp(dateStr1,dateStr2):
""" 两个日期的 timestamp 差值 """
ts1= string_toTimestamp(dateStr1)
ts2= string_toTimestamp(dateStr2)
return ts1-ts2
def 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
补充说明:关于如何根据当前日期对年份和月份进行加减操作的实现方法。
月份加减运算示例
import calendar, datetime
def increment_month(when):
days = calendar.monthrange(when.year, when.month)[1]
return when + datetime.timedelta(days=days)
now = datetime.datetime.now()
print 'It is now %s' % now
print 'In a month, it will be %s' % increment_month(now)
推荐在线工具与资源
此外,推荐以下在线工具辅助日期与天数计算:
在线日期/天数计算器: http://tools.jb51.net/jisuanqi/date_jisuanqi
在线万年历查询工具: http://tools.jb51.net/bianmin/wannianli
在线阴历与阳历转换工具: http://tools.jb51.net/bianmin/yinli2yangli
Unix时间戳转换工具: http://tools.jb51.net/code/unixtime
如需了解更多Python相关知识,可参考本站专题:《Python日期与时间操作技巧总结》、《Python数学运算技巧总结》、《Python数据结构与算法教程》、《Python Socket编程技巧总结》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》及《Python入门与进阶经典教程》。
希望上述内容能对读者的Python编程实践提供帮助。
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













