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 15 Python
Python使用函数默认值实现函数静态变量的方法
Aug 18 Python
Python实现简单求解给定整数的质因数算法示例
Mar 25 Python
Python 处理图片像素点的实例
Jan 08 Python
Python实现Event回调机制的方法
Feb 13 Python
Python小进度条显示代码
Mar 05 Python
树莓派实现移动拍照
Jun 22 Python
python 根据字典的键值进行排序的方法
Jul 24 Python
win10安装tesserocr配置 Python使用tesserocr识别字母数字验证码
Jan 16 Python
Python log模块logging记录打印用法解析
Jan 20 Python
Python实现密钥密码(加解密)实例详解
Apr 26 Python
Python天气语音播报小助手
Sep 25 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
探讨如何使用SimpleXML函数来加载和解析XML文档
2013/06/07 PHP
CodeIgniter使用phpcms模板引擎
2013/11/12 PHP
php对象和数组相互转换的方法
2015/05/12 PHP
PHP 中TP5 Request 请求对象的实例详解
2017/07/31 PHP
广告代码静态化js通用函数
2007/05/09 Javascript
javascript 极速 隐藏/显示万行表格列只需 60毫秒
2009/03/28 Javascript
在新窗口打开超链接的方法小结
2013/04/14 Javascript
js保留两位小数使用toFixed实现
2013/07/29 Javascript
基于Echarts 3.19 制作常用的图形(非静态)
2016/05/19 Javascript
JavaScript简单获取系统当前时间完整示例
2016/08/02 Javascript
JS获取当前页面名称的简单实例
2016/08/19 Javascript
Vue动态控制input的disabled属性的方法
2018/06/26 Javascript
nodejs 使用http进行post或get请求的实例(携带cookie)
2019/01/03 NodeJs
Vue父子组件传值的一些坑
2020/09/16 Javascript
vscode+gulp轻松开发小程序的完整步骤
2020/10/18 Javascript
Perl中著名的Schwartzian转换问题解决实现
2015/06/02 Python
对于Python装饰器使用的一些建议
2015/06/03 Python
Python编程之基于概率论的分类方法:朴素贝叶斯
2017/11/11 Python
微信跳一跳python辅助软件思路及图像识别源码解析
2018/01/04 Python
Python任意字符串转16, 32, 64进制的方法
2019/06/12 Python
带你彻底搞懂python操作mysql数据库(cursor游标讲解)
2020/01/06 Python
Tensorflow实现将标签变为one-hot形式
2020/05/22 Python
查看keras的默认backend实现方式
2020/06/19 Python
Django配置跨域并开发测试接口
2020/11/04 Python
python调用win32接口进行截图的示例
2020/11/11 Python
python装饰器代码深入讲解
2021/03/01 Python
Html5调用手机摄像头并实现人脸识别的实现
2018/12/21 HTML / CSS
野兽派官方旗舰店:THE BEAST 野兽派
2016/08/05 全球购物
应届生自荐信
2014/06/30 职场文书
民主评议党员自我评价材料
2014/09/18 职场文书
离婚协议书怎么写(范本参考)
2014/09/30 职场文书
佛光寺导游词
2015/02/10 职场文书
2015年底工作总结范文
2015/05/15 职场文书
销售会议开幕词
2016/03/04 职场文书
详解前端任务构建利器Gulp.js使用指南
2021/04/30 Javascript
了解MySQL查询语句执行过程(5大组件)
2022/08/14 MySQL