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抓取淘宝下拉框关键词的方法
Jul 08 Python
Python实现将不规范的英文名字首字母大写
Nov 15 Python
多版本Python共存的配置方法
May 22 Python
详解Python数据分析--Pandas知识点
Mar 23 Python
Python搭建代理IP池实现存储IP的方法
Oct 27 Python
Python实现word2Vec model过程解析
Dec 16 Python
Python MySQL 日期时间格式化作为参数的操作
Mar 02 Python
基于Python生成个性二维码过程详解
Mar 05 Python
Python Celery异步任务队列使用方法解析
Aug 10 Python
Django restful framework生成API文档过程详解
Nov 12 Python
python脚本框架webpy模板控制结构
Nov 20 Python
python中出现invalid syntax报错的几种原因分析
Feb 12 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+MySQL的聊天室设计
2006/10/09 PHP
PHP内置加密函数详解
2016/11/20 PHP
用js实现多域名不同文件的调用方法
2007/01/12 Javascript
js创建数据共享接口——简化框架之间相互传值
2011/10/23 Javascript
JS中toFixed()方法引起的问题如何解决
2012/11/20 Javascript
刷新页面的几种方法小结(JS,ASP.NET)
2014/01/07 Javascript
jquery清空表单数据示例分享
2014/02/13 Javascript
JavaScript中Date对象的常用方法示例
2015/10/24 Javascript
详解javascript new的运行机制
2016/01/26 Javascript
JavaScript黑洞数字之运算路线查找算法(递归算法)实例
2016/01/28 Javascript
AngularJS使用ng-repeat和ng-if实现数据的删选显示效果示例【适用于表单数据的显示】
2016/12/13 Javascript
JS图片压缩(pc端和移动端都适用)
2017/01/12 Javascript
js实现瀑布流效果(自动生成新的内容)
2017/03/16 Javascript
uploader秒传图片到服务器完整代码
2017/04/22 Javascript
浅谈angularjs中响应回车事件
2017/04/24 Javascript
Nodejs实现多房间简易聊天室功能
2017/06/20 NodeJs
使用javascript函数编写简单银行取钱存钱流程
2018/05/26 Javascript
vue工程全局设置ajax的等待动效的方法
2019/02/22 Javascript
vue移动端城市三级联动组件使用详解
2019/07/26 Javascript
JavaScript制作3D旋转相册
2020/08/02 Javascript
vue项目在webpack2实现移动端字体自适配功能
2020/06/02 Javascript
微信小程序 scroll-view的使用案例代码详解
2020/06/11 Javascript
Python实现Sqlite将字段当做索引进行查询的方法
2016/07/21 Python
python的多重继承的理解
2017/08/06 Python
Python3一行代码实现图片文字识别的示例
2018/01/15 Python
Python3.7黑帽编程之病毒篇(基础篇)
2020/02/04 Python
python+excel接口自动化获取token并作为请求参数进行传参操作
2020/11/10 Python
Redbubble法国:由独立艺术家设计的独特产品
2019/01/08 全球购物
一套C++笔试题面试题
2012/06/06 面试题
介绍一下内联、左联、右联
2013/12/31 面试题
初级软件工程师面试题 Junior Software Engineer Interview
2015/02/15 面试题
销售心得体会
2014/01/02 职场文书
复核员上岗演讲稿
2014/01/05 职场文书
2014党员学习兰辉先进事迹思想汇报
2014/09/17 职场文书
签证扫盲贴,41个常见签证知识,需要的拿走
2019/08/09 职场文书
2022年四月新番
2022/03/15 日漫