python日期相关操作实例小结


Posted in Python onJune 24, 2019

本文实例讲述了python日期相关操作。分享给大家供大家参考,具体如下:

用 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.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)

PS:这里再为大家推荐几款关于日期与天数计算的在线工具供大家使用:

在线日期/天数计算器:
http://tools.3water.com/jisuanqi/date_jisuanqi

在线万年历日历:
http://tools.3water.com/bianmin/wannianli

在线阴历/阳历转换工具:
http://tools.3water.com/bianmin/yinli2yangli

Unix时间戳(timestamp)转换工具:
http://tools.3water.com/code/unixtime

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
python 实现堆排序算法代码
Jun 05 Python
Python实现的二维码生成小软件
Jul 11 Python
Python scikit-learn 做线性回归的示例代码
Nov 01 Python
python实现学生管理系统
Jan 11 Python
Python2.7.10以上pip更新及其他包的安装教程
Jun 12 Python
django 自定义过滤器的实现
Feb 26 Python
Python用Try语句捕获异常的实例方法
Jun 26 Python
基于python框架Scrapy爬取自己的博客内容过程详解
Aug 05 Python
Python爬虫使用浏览器cookies:browsercookie过程解析
Oct 22 Python
wxPython实现带颜色的进度条
Nov 19 Python
Macbook安装Python最新版本、GUI开发环境、图像处理、视频处理环境详解
Feb 17 Python
Python多线程多进程实例对比解析
Mar 12 Python
使用Python Pandas处理亿级数据的方法
Jun 24 #Python
Python3批量生成带logo的二维码方法
Jun 24 #Python
解决python文件双击运行秒退的问题
Jun 24 #Python
对python中的控制条件、循环和跳出详解
Jun 24 #Python
django框架自定义模板标签(template tag)操作示例
Jun 24 #Python
解决Python内层for循环如何break出外层的循环的问题
Jun 24 #Python
Python 循环终止语句的三种方法小结
Jun 24 #Python
You might like
PHP中的替代语法介绍
2015/01/09 PHP
php正则表达式学习笔记
2015/11/13 PHP
PHP中OpenSSL加密问题整理
2017/12/14 PHP
Javascript匿名函数的一种应用 代码封装
2010/06/27 Javascript
JavaScript下利用fso判断文件是否存在的代码
2010/12/11 Javascript
javascript的数据类型、字面量、变量介绍
2012/05/23 Javascript
ANT 压缩(去掉空格/注释)JS文件可提高js运行速度
2013/04/15 Javascript
同时使用n个window onload加载实例介绍
2013/04/25 Javascript
js常用数组操作方法简明总结
2014/06/20 Javascript
js的延迟执行问题分析
2014/06/23 Javascript
jQuery简单实现网页选项卡特效
2014/11/24 Javascript
javascript制作的cookie封装及使用指南
2015/01/02 Javascript
javascript相关事件的几个概念
2015/05/21 Javascript
JS实现仿腾讯微博无刷新删除微博效果代码
2015/10/16 Javascript
易操作的jQuery表单提示插件
2015/12/01 Javascript
AngularJs基于角色的前端访问控制的实现
2016/11/07 Javascript
bootstrap的工具提示实例代码
2017/05/17 Javascript
vue 自定义提示框(Toast)组件的实现代码
2018/08/17 Javascript
vue 自定义右键样式的实例代码
2019/11/06 Javascript
vue.js this.$router.push获取不到params参数问题
2020/03/03 Javascript
jQuery实现简单评论功能
2020/08/19 jQuery
python使用BeautifulSoup分页网页中超链接的方法
2015/04/04 Python
详解Python3的TFTP文件传输
2018/06/26 Python
如何用C代码给Python写扩展库(Cython)
2019/05/17 Python
Python多进程入门、分布式进程数据共享实例详解
2019/06/03 Python
在Matplotlib图中插入LaTex公式实例
2020/04/17 Python
如何在Python对Excel进行读取
2020/06/04 Python
什么是python类属性
2020/06/10 Python
纯CSS3实现手风琴风格菜单具体步骤
2013/05/06 HTML / CSS
详解CSS3的图层阴影和文字阴影效果使用
2016/06/09 HTML / CSS
多视角3D逼真HTML5水波动画
2016/03/03 HTML / CSS
美国波道夫·古德曼百货官网:Bergdorf Goodman
2017/11/07 全球购物
印尼第一大家居、生活和家具电子商务:Ruparupa
2019/11/25 全球购物
介绍一下MD5加密算法
2016/11/12 面试题
百日安全生产活动总结
2014/07/05 职场文书
Go中的条件语句Switch示例详解
2021/08/23 Golang