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实现simhash算法实例
Apr 25 Python
跟老齐学Python之有容乃大的list(3)
Sep 15 Python
理解Python中函数的参数
Apr 27 Python
python 自动化将markdown文件转成html文件的方法
Sep 23 Python
Python实现ssh批量登录并执行命令
Oct 25 Python
Python日志无延迟实时写入的示例
Jul 11 Python
python选取特定列 pandas iloc,loc,icol的使用详解(列切片及行切片)
Aug 06 Python
python Shapely使用指南详解
Feb 18 Python
Python使用pyyaml模块处理yaml数据
Apr 14 Python
在python里创建一个任务(Task)实例
Apr 25 Python
如何利用python读取micaps文件详解
Oct 18 Python
Python批量修改xml的坐标值全部转为整数的实例代码
Nov 26 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脚本代码
2011/02/19 PHP
destoon设置自定义搜索的方法
2014/06/21 PHP
PHP错误Parse error: syntax error, unexpected end of file in test.php on line 12解决方法
2014/06/23 PHP
php+js实现裁剪任意形状图片
2018/10/31 PHP
PHP pthreads v3下的Volatile简介与使用方法示例
2020/02/21 PHP
对xmlHttp对象方法和属性的理解
2011/01/17 Javascript
jQuery实现的简单折叠菜单(折叠面板)效果代码
2015/09/16 Javascript
Vue.js教程之计算属性
2016/11/11 Javascript
AngularJS实现路由实例
2017/02/12 Javascript
详解Vue监听数据变化原理
2017/03/08 Javascript
ES6中Iterator与for..of..遍历用法分析
2017/03/31 Javascript
JavaScript框架Angular和React深度对比
2017/11/20 Javascript
使用javascript函数编写简单银行取钱存钱流程
2018/05/26 Javascript
Nodejs实现爬虫抓取数据实例解析
2018/07/05 NodeJs
对Vue- 动态元素属性及v-bind和v-model的区别详解
2018/08/27 Javascript
django使用channels2.x实现实时通讯
2018/11/28 Javascript
详解VUE Element-UI多级菜单动态渲染的组件
2019/04/25 Javascript
前后端常见的几种鉴权方式(小结)
2019/08/04 Javascript
Vue防止白屏添加首屏动画的实例
2019/10/31 Javascript
小程序中设置缓存过期的实现方法
2020/01/14 Javascript
Python2.6版本中实现字典推导 PEP 274(Dict Comprehensions)
2015/04/28 Python
Python实现发送QQ邮件的封装
2017/07/14 Python
Python语言生成水仙花数代码示例
2017/12/18 Python
python保存数据到本地文件的方法
2018/06/23 Python
django主动抛出403异常的方法详解
2019/01/04 Python
详解python tkinter模块安装过程
2020/01/06 Python
python处理写入数据代码讲解
2020/10/22 Python
详解python的super()的作用和原理
2020/10/29 Python
《胖乎乎的小手》教学反思
2014/02/26 职场文书
《陈毅探母》教学反思
2014/05/01 职场文书
计算机专业自荐信
2014/05/24 职场文书
个人承诺书格式
2014/06/03 职场文书
做一个有道德的人活动实施方案
2014/08/23 职场文书
2015年班级元旦晚会活动总结
2014/11/28 职场文书
大学生就业意向书
2015/05/11 职场文书
用Python可视化新冠疫情数据
2022/01/18 Python