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中enumerate函数用法实例分析
May 20 Python
Python中类型关系和继承关系实例详解
May 25 Python
python tensorflow基于cnn实现手写数字识别
Jan 01 Python
Python PyQt4实现QQ抽屉效果
Apr 20 Python
python中多层嵌套列表的拆分方法
Jul 02 Python
python二维列表一维列表的互相转换实例
Jul 02 Python
浅谈django orm 优化
Aug 18 Python
python查看模块安装位置的方法
Oct 16 Python
基于PyQt4和PySide实现输入对话框效果
Feb 27 Python
在pycharm中创建django项目的示例代码
May 28 Python
Python爬虫破解登陆哔哩哔哩的方法
Nov 17 Python
Python 用__new__方法实现单例的操作
Dec 11 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
全国FM电台频率大全 - 3 河北省
2020/03/11 无线电
这东西价格,可以买几台TECSUN S-2000
2021/03/02 无线电
用Zend Encode编写开发PHP程序
2010/02/21 PHP
php学习笔记之 函数声明
2011/06/09 PHP
探讨:使用XMLSerialize 序列化与反序列化
2013/06/08 PHP
PHP实现绘制二叉树图形显示功能详解【包括二叉搜索树、平衡树及红黑树】
2017/11/16 PHP
php模拟实现斗地主发牌
2020/04/22 PHP
CSS心形加载的动画源码的实现
2021/03/09 HTML / CSS
JS获取dom 对象 ajax操作 读写cookie函数
2009/11/18 Javascript
jQuery弹性滑动导航菜单实现思路及代码
2013/05/02 Javascript
jquery让指定的元素闪烁显示的方法
2015/03/17 Javascript
实例讲解JavaScript中的this指向错误解决方法
2016/06/13 Javascript
使用jQuery给input标签设置默认值
2016/06/20 Javascript
ros::spin() 和 ros::spinOnce()函数的区别及详解
2016/10/01 Javascript
jquery+Jscex打造游戏力度条
2020/09/12 Javascript
JavaScript获取select中text值的方法
2017/02/13 Javascript
BootStrap表单控件之文本域textarea
2017/05/23 Javascript
在HTML文档中嵌入JavaScript的四种方法
2018/05/07 Javascript
JavaScript事件冒泡与事件捕获实例分析
2018/08/01 Javascript
浅谈关于JS下大批量异步任务按顺序执行解决方案一点思考
2019/01/08 Javascript
layui实现鼠标移动到单元格上显示数据的方法
2019/09/11 Javascript
[48:22]VGJ.S vs VG 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
python实现简单爬虫功能的示例
2016/10/24 Python
从django的中间件直接返回请求的方法
2018/05/30 Python
Python判断telnet通不通的实例
2019/01/26 Python
python判断无向图环是否存在的示例
2019/11/22 Python
python 使用shutil复制图片的例子
2019/12/13 Python
python多进程并发demo实例解析
2019/12/13 Python
Python Socket多线程并发原理及实现
2020/12/11 Python
美国迪克体育用品商店:DICK’S Sporting Goods
2018/07/24 全球购物
三星新西兰官网:Samsung新西兰
2019/03/05 全球购物
党的群众路线对照检查材料(个人)
2014/09/24 职场文书
文艺节目主持词
2015/07/06 职场文书
十一月早安语录:把心放轻,人生就是一朵自在的云
2019/11/04 职场文书
三年级作文之趣事作文
2019/11/04 职场文书
创业计划书之酒吧
2019/12/02 职场文书