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爬虫之神器正则表达式
Nov 06 Python
Python、PyCharm安装及使用方法(Mac版)详解
Apr 28 Python
Python机器学习k-近邻算法(K Nearest Neighbor)实例详解
Jun 25 Python
用Python实现筛选文件脚本的方法
Oct 27 Python
在python环境下运用kafka对数据进行实时传输的方法
Dec 27 Python
python卸载后再次安装遇到的问题解决
Jul 10 Python
python 爬虫百度地图的信息界面的实现方法
Oct 27 Python
python实现高斯(Gauss)迭代法的例子
Nov 20 Python
python turtle工具绘制四叶草的实例分享
Feb 14 Python
用python介绍4种常用的单链表翻转的方法小结
Feb 24 Python
Keras Convolution1D与Convolution2D区别说明
May 22 Python
Python实现一个简单的毕业生信息管理系统的示例代码
Jun 08 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
制作美丽的拉花
2021/03/03 冲泡冲煮
zend api扩展的php对象的autoload工具
2011/04/18 PHP
php实现的常见排序算法汇总
2014/09/08 PHP
php使用timthumb生成缩略图的方法
2016/01/22 PHP
深入理解PHP原理之执行周期分析
2016/06/01 PHP
微信公众平台开发教程①获取用户Openid及个人信息图文详解
2019/04/10 PHP
禁止F5等快捷键的JS代码
2007/03/06 Javascript
js模拟类继承小例子
2010/07/17 Javascript
jQuery 瀑布流 绝对定位布局(二)(延迟AJAX加载图片)
2012/05/23 Javascript
jQuery向上遍历DOM树之parents(),parent(),closest()之间的区别
2013/12/02 Javascript
node.js中的path.delimiter方法使用说明
2014/12/09 Javascript
JavaScript数组迭代器实例分析
2015/06/09 Javascript
javascript中传统事件与现代事件
2015/06/23 Javascript
jquery trigger函数执行两次的解决方法
2016/02/29 Javascript
关于JS中match() 和 exec() 返回值和属性的测试
2016/03/21 Javascript
用nodejs的实现原理和搭建服务器(动态)
2016/08/10 NodeJs
微信小程序 解决swiper不显示图片的方法
2017/01/04 Javascript
jQuery选择器中的特殊符号处理方法
2017/09/08 jQuery
基于js中document.cookie全面解析
2017/09/14 Javascript
vue cli 3.0 使用全过程解析
2018/06/14 Javascript
vue3修改link标签默认icon无效问题详解
2019/10/09 Javascript
Vue3.0的优化总结
2020/10/16 Javascript
使用Python进行新浪微博的mid和url互相转换实例(10进制和62进制互算)
2014/04/25 Python
python万年历实现代码 含运行结果
2017/05/20 Python
python爬虫_自动获取seebug的poc实例
2017/08/05 Python
python出现"IndentationError: unexpected indent"错误解决办法
2017/10/15 Python
Pycharm取消py脚本中SQL识别的方法
2018/11/29 Python
Django 实现Admin自动填充当前用户的示例代码
2019/11/18 Python
tensorflow 实现数据类型转换
2020/02/17 Python
叙述DBMS对数据控制功能有哪些
2016/06/12 面试题
艺术设计专业个人求职信
2013/09/21 职场文书
开办饭店创业计划书
2013/12/28 职场文书
销售团队激励口号
2014/06/06 职场文书
卢旺达饭店观后感
2015/06/05 职场文书
新年祝酒词大全
2015/08/11 职场文书
详解overflow:hidden的作用(溢出隐藏、清除浮动、解决外边距塌陷)
2021/07/01 HTML / CSS