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安装PIL模块时Unable to find vcvarsall.bat错误的解决方法
Sep 19 Python
用python写一个windows下的定时关机脚本(推荐)
Mar 21 Python
python模块smtplib学习
May 22 Python
selenium+python自动化测试之使用webdriver操作浏览器的方法
Jan 23 Python
Python3.5模块的定义、导入、优化操作图文详解
Apr 27 Python
linux环境中没有网络怎么下载python
Jul 07 Python
python flask中动态URL规则详解
Nov 22 Python
基于Python fminunc 的替代方法
Feb 29 Python
vscode调试django项目的方法
Aug 06 Python
Django中日期时间型字段进行年月日时分秒分组统计
Nov 27 Python
python中entry用法讲解
Dec 04 Python
python异常中else的实例用法
Jun 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 组件化编程技巧
2009/06/06 PHP
PHP 简易输出CSV表格文件的方法详解
2013/06/20 PHP
PHP Curl出现403错误的解决办法
2014/05/29 PHP
php绘制一个矩形的方法
2015/01/24 PHP
php中mysql操作buffer用法详解
2015/03/19 PHP
谈谈 PHP7新增功能
2015/12/16 PHP
用JavaScript和注册表脚本实现右键收藏Web页选中文本
2007/01/28 Javascript
HTML5附件拖拽上传drop & google.gears实现代码
2011/04/28 Javascript
jquery鼠标滑过提示title具体实现代码
2013/08/06 Javascript
JavaScrip实现PHP print_r的数功能(三种方法)
2013/11/12 Javascript
javascript实现选中复选框后相关输入框变灰不可用的方法
2015/08/11 Javascript
jquery实现带缩略图的可定制高度画廊效果(5种)
2015/08/28 Javascript
半个小时学json(json传递示例)
2016/12/25 Javascript
javascrit中undefined和null的区别详解
2019/04/07 Javascript
微信小程序indexOf的替换方法(推荐)
2020/01/14 Javascript
精读《Vue3.0 Function API》
2020/05/20 Javascript
详细分析Node.js 模块系统
2020/06/28 Javascript
在实例中重学JavaScript事件循环
2020/12/03 Javascript
详解Python中的条件判断语句
2015/05/14 Python
python清除字符串里非字母字符的方法
2015/07/02 Python
python中如何使用朴素贝叶斯算法
2017/04/06 Python
python文件名和文件路径操作实例
2017/09/29 Python
ubuntu环境下python虚拟环境的安装过程
2018/01/07 Python
python监控键盘输入实例代码
2018/02/09 Python
Pandas Shift函数的基础入门学习笔记
2018/11/16 Python
处理python中多线程与多进程中的数据共享问题
2019/07/28 Python
python如何实现不可变字典inmutabledict
2020/01/08 Python
浅谈python处理json和redis hash的坑
2020/07/16 Python
澳大利亚自然和有机的健康美容产品一站式商店:Ziani Beauty
2017/12/28 全球购物
意大利制造的男鞋和女鞋:SCAROSSO
2018/03/07 全球购物
Linux如何为某个操作添加别名
2013/03/01 面试题
暑期培训班招生方案
2014/08/26 职场文书
单位更名证明
2015/06/18 职场文书
详解TypeScript的基础类型
2022/02/18 Javascript
python函数的两种嵌套方法使用
2022/04/02 Python
在容器中使用nginx搭建上传下载服务器
2022/05/11 Servers