Python日期处理常见操作与代码示例

Jasper
Jasper
发布时间:2026-10-13| 4人浏览过
原创

本文汇总了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编程实践提供帮助。

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。