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时间处理方法(详解)
Aug 14 Python
python命令行解析之parse_known_args()函数和parse_args()使用区别介绍
Jan 24 Python
如何使用 Pylint 来规范 Python 代码风格(来自IBM)
Apr 06 Python
Python贪心算法实例小结
Apr 22 Python
对python中for、if、while的区别与比较方法
Jun 25 Python
python爬虫 批量下载zabbix文档代码实例
Aug 21 Python
Python使用grequests(gevent+requests)并发发送请求过程解析
Sep 25 Python
python文字转语音实现过程解析
Nov 12 Python
PyQt5多线程刷新界面防假死示例
Dec 13 Python
python读取文件指定行内容实例讲解
Mar 02 Python
Python爬虫之Selenium实现窗口截图
Dec 04 Python
python opencv实现图像配准与比较
Feb 09 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
利用Memcached在php下实现session机制 替换PHP的原生session支持
2010/08/21 PHP
PHP代码维护,重构变困难的4种原因分析
2016/01/25 PHP
PHP 等比例缩放图片详解及实例代码
2016/09/18 PHP
使用js修改客户端注册表的方法
2013/08/09 Javascript
JavaScript+html5 canvas绘制渐变区域完整实例
2016/01/26 Javascript
浅析jquery如何判断滚动条滚到页面底部并执行事件
2016/04/29 Javascript
jquery实现的回旋滚动效果完整实例【附demo源码下载】
2016/09/20 Javascript
JS实现微信里判断页面是否被分享成功的方法
2017/06/06 Javascript
信息滚动效果的实例讲解
2017/09/18 Javascript
javascript+html5+css3自定义弹出窗口效果
2017/10/26 Javascript
Javascript实现运算符重载详解
2018/04/07 Javascript
Node.js事件的正确使用方法
2019/04/05 Javascript
Vue-Cli项目优化操作的实现
2019/10/27 Javascript
原生js实现商品筛选功能
2019/10/28 Javascript
vue导航栏部分的动态渲染实例
2019/11/01 Javascript
js原生map实现的方法总结
2020/01/19 Javascript
详谈python3中用for循环删除列表中元素的坑
2018/04/19 Python
解决python字典对值(值为列表)赋值出现重复的问题
2019/01/20 Python
在Python中字典根据多项规则排序的方法
2019/01/21 Python
使用pycharm在本地开发并实时同步到服务器
2019/08/02 Python
Python面向对象封装操作案例详解 II
2020/01/02 Python
Python Django form 组件动态从数据库取choices数据实例
2020/05/19 Python
利用Python的folium包绘制城市道路图的实现示例
2020/08/24 Python
CSS3弹性盒模型开发笔记(三)
2016/04/26 HTML / CSS
CSS3制作漂亮的照片墙的实现代码
2016/06/08 HTML / CSS
CSS3 实现的加载动画
2020/12/07 HTML / CSS
详解Html5页面实现下载文件(apk、txt等)的三种方式
2018/10/22 HTML / CSS
凯特·丝蓓英国官网:Kate Spade英国
2016/11/07 全球购物
eDreams巴西:廉价机票,酒店优惠和度假套餐
2017/04/14 全球购物
附答案的Java面试题
2012/11/19 面试题
竞选体育委员演讲稿
2014/04/26 职场文书
数学兴趣小组活动总结
2014/07/08 职场文书
冰峪沟导游词
2015/02/09 职场文书
退休职工欢送会致辞
2015/08/01 职场文书
python 中[0]*2与0*2的区别说明
2021/05/10 Python
pandas数值排序的实现实例
2021/07/25 Python