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实现k均值算法示例(k均值聚类算法)
Mar 16 Python
详解Python的迭代器、生成器以及相关的itertools包
Apr 02 Python
Python中IPYTHON入门实例
May 11 Python
python实现马耳可夫链算法实例分析
May 20 Python
Python流程控制 while循环实现解析
Sep 02 Python
Python lambda表达式filter、map、reduce函数用法解析
Sep 11 Python
python实现while循环打印星星的四种形状
Nov 23 Python
python GUI库图形界面开发之PyQt5拖放控件实例详解
Feb 25 Python
Django实现列表页商品数据返回教程
Apr 03 Python
Numpy中np.max的用法及np.maximum区别
Nov 27 Python
pycharm + django跨域无提示的解决方法
Dec 06 Python
聊聊pytorch测试的时候为何要加上model.eval()
May 23 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
新的一年,新的期待:DC在2020年的四部动画电影
2020/01/01 欧美动漫
PHP数据库处理封装类实例
2016/12/24 PHP
PHP-FPM的配置与优化讲解
2019/03/15 PHP
javascript eval函数深入认识
2009/02/21 Javascript
javascript 获取模态窗口的滚动位置代码
2013/08/06 Javascript
利用javascript实现禁用网页上所有文本框,下拉菜单,多行文本域
2013/12/14 Javascript
jQuery选择器querySelector的使用指南
2015/01/23 Javascript
解析javascript中鼠标滚轮事件
2015/05/26 Javascript
表单中单选框添加选项和移除选项
2016/07/04 Javascript
AngularJs IE Compatibility 兼容老版本IE
2016/09/01 Javascript
浅谈js内置对象Math的属性和方法(推荐)
2016/09/19 Javascript
JS原生带小白点轮播图实例讲解
2017/07/22 Javascript
JS库 Highlightjs 添加代码行号的实现代码
2017/09/13 Javascript
Vue中 key keep-alive的实现原理
2018/09/18 Javascript
微信小程序搭建(mpvue+mpvue-weui+fly.js)的详细步骤
2018/09/18 Javascript
浅谈JS中几种轻松处理'this'指向方式
2019/09/16 Javascript
video.js添加自定义组件的方法
2020/12/09 Javascript
vue 项目@change多个参数传值多个事件的操作
2021/01/29 Vue.js
[00:36]DOTA2上海特级锦标赛 LGD战队宣传片
2016/03/04 DOTA
使用 Python 获取 Linux 系统信息的代码
2014/07/13 Python
Python 模块EasyGui详细介绍
2017/02/19 Python
Python 最大概率法进行汉语切分的方法
2018/12/14 Python
Python使用qrcode二维码库生成二维码方法详解
2020/02/17 Python
python3字符串输出常见面试题总结
2020/12/01 Python
CSS3中伪元素::before和::after的用法示例
2017/09/18 HTML / CSS
详解如何获取localStorage最大存储大小的方法
2020/05/21 HTML / CSS
英国信箱在线鲜花速递公司:Bloom & Wild
2019/03/10 全球购物
大学生职业规划论文
2014/01/11 职场文书
护士试用期自我鉴定
2014/02/08 职场文书
黄河象教学反思
2014/02/10 职场文书
《童年》教学反思
2014/02/18 职场文书
小学竞选班长演讲稿
2014/09/09 职场文书
市场总监岗位职责
2015/02/11 职场文书
pandas取dataframe特定行列的实现方法
2021/05/24 Python
分享3个非常实用的 Python 模块
2022/03/03 Python
使用 CSS 构建强大且酷炫的粒子动画效果
2022/08/14 HTML / CSS