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 字典dict使用介绍
Nov 30 Python
python实现数组插入新元素的方法
May 22 Python
Django框架中处理URLconf中特定的URL的方法
Jul 20 Python
Python如何import文件夹下的文件(实现方法)
Jan 24 Python
python利用rsa库做公钥解密的方法教程
Dec 10 Python
Django中如何防范CSRF跨站点请求伪造攻击的实现
Apr 28 Python
浅谈python3中input输入的使用
Aug 02 Python
python创建子类的方法分析
Nov 28 Python
Python Websocket服务端通信的使用示例
Feb 25 Python
屏蔽Django admin界面添加按钮的操作
Mar 11 Python
pyecharts动态轨迹图的实现示例
Apr 17 Python
python 线程的五个状态
Sep 22 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的面试题集
2006/11/19 PHP
PHP中的print_r 与 var_dump 输出数组
2016/06/13 PHP
jquery multiSelect 多选下拉框
2010/07/09 Javascript
javascript中的继承实例代码
2011/04/27 Javascript
读jQuery之四(优雅的迭代)
2011/06/20 Javascript
JS预览图像将本地图片显示到浏览器上
2013/08/25 Javascript
用js传递value默认值的示例代码
2014/09/11 Javascript
浅谈JavaScript Date日期和时间对象
2014/12/29 Javascript
js实现漂浮回顶部按钮实例
2015/05/06 Javascript
AngularJS基础学习笔记之表达式
2015/05/10 Javascript
jquery使用each方法遍历json格式数据实例
2015/05/18 Javascript
jQuery+AJAX实现遮罩层登录验证界面(附源码)
2020/09/13 Javascript
基于javascript制作微博发布栏效果
2016/04/04 Javascript
详解在Angular项目中添加插件ng-bootstrap
2017/07/04 Javascript
jquery ztree实现右键收藏功能
2017/11/20 jQuery
微信小程序列表渲染功能之列表下拉刷新及上拉加载的实现方法分析
2017/11/27 Javascript
10分钟上手vue-cli 3.0 入门介绍
2018/04/04 Javascript
Angular父子组件通过服务传参的示例方法
2018/10/31 Javascript
node错误处理与日志记录的实现
2018/12/24 Javascript
Vuex 模块化使用详解
2019/07/31 Javascript
[20:39]DOTA2-DPC中国联赛 正赛开幕式 1月18日
2021/03/11 DOTA
详解Python3 中hasattr()、getattr()、setattr()、delattr()函数及示例代码数
2018/04/18 Python
Pandas中Series和DataFrame的索引实现
2019/06/27 Python
Selenium使用Chrome模拟手机浏览器方法解析
2020/04/10 Python
css3实现平移效果(transfrom:translate)的示例
2020/11/13 HTML / CSS
canvas实现图片镜像翻转的2种方式
2020/07/22 HTML / CSS
Waterford英国官方网站:世界上最受欢迎的优质水晶品牌
2019/08/17 全球购物
为什么说Ruby是一种真正的面向对象程序设计语言
2012/10/30 面试题
电子信息专业自荐书
2014/02/04 职场文书
出纳员岗位职责风险
2014/03/06 职场文书
失职检讨书大全
2015/01/26 职场文书
收费员岗位职责
2015/02/14 职场文书
党员公开承诺书(2016最新版)
2016/03/24 职场文书
详细聊聊Oracle表碎片对性能有多大的影响
2022/03/19 Oracle
Python Pytorch查询图像的特征从集合或数据库中查找图像
2022/04/09 Python
Python写情书? 10行代码展示如何把情书写在她的照片里
2022/04/21 Python