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编写生成树状结构的文件目录的脚本的教程
May 04 Python
Python黑帽编程 3.4 跨越VLAN详解
Sep 28 Python
python 出现SyntaxError: non-keyword arg after keyword arg错误解决办法
Feb 14 Python
python与php实现分割文件代码
Mar 06 Python
django的登录注册系统的示例代码
May 14 Python
Python3.x爬虫下载网页图片的实例讲解
May 22 Python
详解python中的装饰器
Jul 10 Python
Python实现将数据写入netCDF4中的方法示例
Aug 30 Python
Python list运算操作代码实例解析
Jan 20 Python
python文件操作seek()偏移量,读取指正到指定位置操作
Jul 05 Python
实例讲解Python 迭代器与生成器
Jul 08 Python
python实现简单的tcp 文件下载
Sep 16 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电台频率大全 - 13 福建省
2020/03/11 无线电
兼容firefox,chrome的网页灰度效果
2011/08/08 PHP
PHP删除指定目录中的所有目录及文件的方法
2015/02/26 PHP
PHP中substr_count()函数获取子字符串出现次数的方法
2016/01/07 PHP
json 入门基础教程 推荐
2009/10/31 Javascript
JS实现图片预加载无需等待
2012/12/21 Javascript
原生js实现fadein 和 fadeout淡入淡出效果
2014/06/05 Javascript
QQ登录背景闪动效果附效果演示源码下载
2015/09/22 Javascript
Bootstrap树形组件jqTree的简单封装
2016/01/25 Javascript
jQuery过滤选择器用法示例
2016/09/12 Javascript
微信小程序之拖拽排序(代码分享)
2017/01/21 Javascript
微信小程序实战之仿android fragment可滑动底部导航栏(4)
2020/04/16 Javascript
chorme 浏览器记住密码后input黄色背景处理方法(两种)
2017/11/22 Javascript
spirngmvc js传递复杂json参数到controller的实例
2018/03/29 Javascript
详解基于vue的服务端渲染框架NUXT
2018/06/20 Javascript
JS实现获取word文档内容并输出显示到html页面示例
2018/06/23 Javascript
JS中的算法与数据结构之链表(Linked-list)实例详解
2019/08/20 Javascript
CKEditor扩展插件:自动排版功能autoformat插件实现方法详解
2020/02/06 Javascript
浅谈javascript事件环微任务和宏任务队列原理
2020/09/12 Javascript
Python和Go语言的区别总结
2019/02/20 Python
python中metaclass原理与用法详解
2019/06/25 Python
python+selenium select下拉选择框定位处理方法
2019/08/24 Python
Python捕获异常堆栈信息的几种方法(小结)
2020/05/18 Python
解决python运行启动报错问题
2020/06/01 Python
如何编写python的daemon程序
2021/01/07 Python
详解CSS透明opacity和IE各版本透明度滤镜filter的最准确用法
2016/12/20 HTML / CSS
微软英国官方网站:Microsoft英国
2016/10/15 全球购物
莫斯科隐形眼镜网上商店:Linzi
2019/07/22 全球购物
网页美工求职信
2014/02/15 职场文书
文化建设工作方案
2014/05/12 职场文书
单方离婚协议书范本2014
2014/10/28 职场文书
初中生散播谣言检讨书
2014/11/17 职场文书
2015年暑期实践报告范文
2015/07/13 职场文书
小学毕业感言100字
2015/07/30 职场文书
贴吧吧主申请感言
2015/08/03 职场文书
Mysql忘记密码解决方法
2022/02/12 MySQL