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 pickle模块用法实例分析
May 27 Python
Python实现保证只能运行一个脚本实例
Jun 24 Python
在Django框架中设置语言偏好的教程
Jul 27 Python
星球大战与Python之间的那些事
Jan 07 Python
Python内置的HTTP协议服务器SimpleHTTPServer使用指南
Mar 30 Python
基于python select.select模块通信的实例讲解
Sep 21 Python
python实现接口并发测试脚本
Jun 25 Python
Pandas0.25来了千万别错过这10大好用的新功能
Aug 07 Python
使用TensorFlow-Slim进行图像分类的实现
Dec 31 Python
Python读取分割压缩TXT文本文件实例
Feb 14 Python
python环境下安装opencv库的方法
Mar 05 Python
python 实现分组求和与分组累加求和代码
May 18 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设计模式中工厂模式详细介绍
2013/05/15 PHP
Win下如何安装PHP的APC拓展
2013/08/07 PHP
phpmyadmin出现Cannot start session without errors问题解决方法
2014/08/14 PHP
tp5.0框架隐藏index.php入口文件及模块和控制器的方法分析
2020/02/11 PHP
通过Unicode转义序列来加密,按你说的可以算是混淆吧
2007/05/06 Javascript
动态刷新 dorado树的js代码
2009/06/12 Javascript
jquery实现奇偶行赋值不同css值
2012/02/17 Javascript
Windows8下搭建Node.js开发环境教程
2014/09/03 Javascript
JavaScript前端图片加载管理器imagepool使用详解
2014/12/29 Javascript
Jquery和angularjs获取check框选中的值的方法汇总
2016/01/17 Javascript
JS 清除字符串数组中,重复元素的实现方法
2016/05/24 Javascript
如何提高数据访问速度
2016/12/26 Javascript
如何使用 vue + d3 画一棵树
2018/12/03 Javascript
JavaScript设计模式之责任链模式实例分析
2019/01/16 Javascript
Vue使用lodop实现打印小结
2019/07/06 Javascript
Vue组件间的通信pubsub-js实现步骤解析
2020/03/11 Javascript
深入webpack打包原理及loader和plugin的实现
2020/05/06 Javascript
OpenLayers3加载常用控件使用方法详解
2020/09/25 Javascript
如何在JavaScript中正确处理变量
2020/12/25 Javascript
[51:36]EG vs VP 2018国际邀请赛淘汰赛BO3 第一场 8.24
2018/08/25 DOTA
[01:12:08]LGD vs OG 2019国际邀请赛淘汰赛 胜者组 BO3 第一场 8.24
2019/09/10 DOTA
python基于queue和threading实现多线程下载实例
2014/10/08 Python
Python实现批量修改文件名实例
2015/07/08 Python
Python 实现文件的全备份和差异备份详解
2016/12/27 Python
Python中的错误和异常处理简单操作示例【try-except用法】
2017/07/25 Python
numpy concatenate数组拼接方法示例介绍
2019/05/27 Python
python顺序执行多个py文件的方法
2019/06/29 Python
Python 写入训练日志文件并控制台输出解析
2019/08/13 Python
Python获取、格式化当前时间日期的方法
2020/02/10 Python
Python 远程开关机的方法
2020/11/18 Python
HTML5获取当前地理位置并在百度地图上展示的实例
2020/07/10 HTML / CSS
sleep()方法和wait()方法的区别是什么
2012/11/17 面试题
学习与创新自我评价
2015/03/09 职场文书
创业计划书之个人工作室
2019/08/22 职场文书
Python+Appium实现自动抢微信红包
2021/05/21 Python
详解Flutter自定义应用程序内键盘的实现方法
2022/06/14 Java/Android