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 相关文章推荐
神经网络(BP)算法Python实现及应用
Apr 16 Python
Python中new方法的详解
Jan 15 Python
Python3.4学习笔记之常用操作符,条件分支和循环用法示例
Mar 01 Python
Python3.0中普通方法、类方法和静态方法的比较
May 03 Python
Python爬虫爬取煎蛋网图片代码实例
Dec 16 Python
python爬虫模块URL管理器模块用法解析
Feb 03 Python
python实现将列表中各个值快速赋值给多个变量
Apr 02 Python
在pytorch中动态调整优化器的学习率方式
Jun 24 Python
python爬虫使用requests发送post请求示例详解
Aug 05 Python
python中如何打包用户自定义模块
Sep 23 Python
Sublime Text3最新激活注册码分享适用2020最新版 亲测可用
Nov 12 Python
python re的findall和finditer的区别详解
Nov 15 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自动反斜杠的函数代码
2010/01/05 PHP
PHP基于SPL实现的迭代器模式示例
2018/04/22 PHP
JQuery.ajax传递中文参数的解决方法 推荐
2011/03/28 Javascript
javascript游戏开发之《三国志曹操传》零部件开发(四)用地图块拼成大地图
2013/01/23 Javascript
JS实现超炫网页烟花动画效果的方法
2015/03/02 Javascript
Bootstrap每天必学之栅格系统(布局)
2015/11/25 Javascript
理解JS事件循环
2016/01/07 Javascript
简单易懂的天气插件(代码分享)
2017/02/04 Javascript
three.js实现3D影院的原理的代码分析
2017/12/18 Javascript
web前端vue filter 过滤器
2018/01/12 Javascript
浅谈vue中改elementUI默认样式引发的static与assets的区别
2018/02/03 Javascript
详解NodeJS Https HSM双向认证实现
2019/03/12 NodeJs
通过jQuery学习js类型判断的技巧
2019/05/27 jQuery
vue中的面包屑导航组件实例代码
2019/07/01 Javascript
如何解决jQuery 和其他JS库的冲突
2020/06/22 jQuery
解决vue watch数据的方法被调用了两次的问题
2020/11/07 Javascript
[02:19]DOTA2上海特级锦标赛 观赛指南 Spectator Guide
2016/02/04 DOTA
[47:22]Mineski vs Winstrike 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
[54:47]Liquid vs VP Supermajor决赛 BO 第五场 6.10
2018/07/05 DOTA
[38:54]完美世界DOTA2联赛PWL S2 Rebirth vs LBZS 第一场 11.28
2020/12/01 DOTA
python制作一个桌面便签软件
2015/08/09 Python
Python 专题四 文件基础知识
2017/03/20 Python
Python中.py文件打包成exe可执行文件详解
2017/03/22 Python
Python对文件和目录进行操作的方法(file对象/os/os.path/shutil 模块)
2017/05/08 Python
js实现移动端H5页面手指滑动刻度尺功能
2017/11/16 HTML / CSS
检测浏览器是否支持html5视频的代码
2013/03/28 HTML / CSS
世界各地的当地人的食物体验:Eatwith
2019/07/26 全球购物
Kate Spade澳大利亚官方网站:美国设计师手袋品牌
2019/09/10 全球购物
J2ee常用的设计模式?说明工厂模式
2015/05/21 面试题
计算机网络专业自荐信
2014/07/04 职场文书
未婚证明书模板
2014/10/08 职场文书
入党积极分子培养人意见
2015/06/02 职场文书
初中军训感想
2015/08/07 职场文书
用React Native制作一个简单的游戏引擎
2021/05/27 Javascript
Python趣味实战之手把手教你实现举牌小人生成器
2021/06/07 Python
据Python爬虫不靠谱预测可知今年双十一销售额将超过6000亿元
2021/11/11 Python