Python常用的日期时间处理方法示例


Posted in Python onFebruary 08, 2015
#-*- coding: utf-8 -*-
import datetime


#给定日期向后N天的日期
def dateadd_day(days):
  d1 = datetime.datetime.now()
  d3 = d1 + datetime.timedelta(days)
  return d3


#昨天
def getYesterday():
  today = datetime.date.today()
  oneday = datetime.timedelta(days=1)
  yesterday = today - oneday
  return yesterday


#今天
def getToday():
  return datetime.date.today()


#获取给定参数的前几天的日期,返回一个list
def getDaysBefore(num):
  today = datetime.date.today()
  oneday = datetime.timedelta(days=1)
  li = []
  for i in range(0, num):
    #今天减一天,一天一天减
    today = today - oneday
    #把日期转换成字符串
    li.append(datetostr(today))
  return li


#将字符串转换成datetime类型
def strtodatetime(datestr, format):
  return datetime.datetime.strptime(datestr, format)


#时间转换成字符串,格式为2015-02-02
def datetostr(date):
  return str(date)[0:10]


#时间转换成字符串,格式为2015-02-02
def datetostr_secod(date):
  return str(date)[0:19]


#两个日期相隔多少天,例:2015-2-04和2015-3-1
def datediff(beginDate, endDate):
  format = "%Y-%m-%d"
  bd = strtodatetime(beginDate, format)
  ed = strtodatetime(endDate, format)
  oneday = datetime.timedelta(days=1)
  count = 0
  while bd != ed:
    ed = ed - oneday
    count += 1
  return count


#两个日期之间相差的秒
def datediff_seconds(beginDate, endDate):
  format = "%Y-%m-%d %H:%M:%S"
  if " " not in beginDate or ':' not in beginDate:
    bformat = "%Y-%m-%d"
  else:
    bformat = format
  if " " not in endDate or ':' not in endDate:
    eformat = "%Y-%m-%d"
  else:
    eformat = format
  starttime = strtodatetime(beginDate, bformat)
  endtime = strtodatetime(endDate, eformat)
  ret = endtime - starttime
  return ret.days * 86400 + ret.seconds


#获取两个时间段的所有时间,返回list
def getDays(beginDate, endDate):
  format = "%Y-%m-%d"
  begin = strtodatetime(beginDate, format)
  oneday = datetime.timedelta(days=1)
  num = datediff(beginDate, endDate) + 1
  li = []
  for i in range(0, num):
    li.append(datetostr(begin))
    begin = begin + oneday
  return li


#获取当前年份 是一个字符串
def getYear(date=datetime.date.today()):
  return str(date)[0:4]


#获取当前月份 是一个字符串
def getMonth(date=datetime.date.today()):
  return str(date)[5:7]


#获取当前天 是一个字符串
def getDay(date=datetime.date.today()):
  return str(date)[8:10]


#获取当前小时 是一个字符串
def getHour(date=datetime.datetime.now()):
  return str(date)[11:13]


#获取当前分钟 是一个字符串
def getMinute(date=datetime.datetime.now()):
  return str(date)[14:16]


#获取当前秒 是一个字符串
def getSecond(date=datetime.datetime.now()):
  return str(date)[17:19]


def getNow():
  return datetime.datetime.now()


print dateadd_day(10)
#2015-02-14 16:41:13.275000

print getYesterday()
#2015-02-03

print getToday()
#2015-02-04

print getDaysBefore(3)
#['2015-02-03', '2015-02-02', '2015-02-01']

print datediff('2015-2-01', '2015-10-05')
#246

print datediff_seconds('2015-02-04', '2015-02-05')
#86400

print datediff_seconds('2015-02-04 22:00:00', '2015-02-05')
#7200

print getDays('2015-2-03', '2015-2-05')
#['2015-02-03', '2015-02-04', '2015-02-05']

print datetostr_secod(getNow())
#2015-02-04 16:46:47

print str(getYear(dateadd_day(-50))) + '-'\
  + getMonth() + '-'\
  + getDay() + ' '\
  + getHour() + ':'\
  + getMinute() + ':'\
  + getSecond()
#2014-02-04 16:59:04

print getNow()
#2015-02-04 16:46:47.454000
Python 相关文章推荐
Anaconda多环境多版本python配置操作方法
Sep 12 Python
Python IDLE清空窗口的实例
Jun 25 Python
windows下pycharm安装、创建文件、配置默认模板
Jul 31 Python
Python实现深度遍历和广度遍历的方法
Jan 22 Python
Scrapy-Redis结合POST请求获取数据的方法示例
May 07 Python
python用线性回归预测股票价格的实现代码
Sep 04 Python
python打印n位数“水仙花数”(实例代码)
Dec 25 Python
tensorflow 模型权重导出实例
Jan 24 Python
matplotlib 多个图像共用一个colorbar的实现示例
Sep 10 Python
Python + opencv对拍照得到的图片进行背景去除的实现方法
Nov 18 Python
python爬虫爬取图片的简单代码
Jan 18 Python
如何使用flask将模型部署为服务
May 13 Python
Python中使用PIL库实现图片高斯模糊实例
Feb 08 #Python
Python中解析JSON并同时进行自定义编码处理实例
Feb 08 #Python
Python Web框架Flask中使用七牛云存储实例
Feb 08 #Python
Python Web框架Flask中使用百度云存储BCS实例
Feb 08 #Python
Python Web框架Flask中使用新浪SAE云存储实例
Feb 08 #Python
Python中装饰器的一个妙用
Feb 08 #Python
Python中使用HTMLParser解析html实例
Feb 08 #Python
You might like
一个可以删除字符串中HTML标记的PHP函数
2006/10/09 PHP
FCKeditor的安装(PHP)
2007/01/13 PHP
《PHP编程最快明白》第五讲:php目录、文件操作
2010/11/01 PHP
PHPwind整合最土系统用户同步登录实现方法
2010/12/08 PHP
PHP中函数rand和mt_rand的区别比较
2012/12/26 PHP
php curl获取网页内容(IPV6下超时)的解决办法
2013/07/16 PHP
php上传文件问题汇总
2015/01/30 PHP
原生JS可拖动弹窗效果实例代码
2013/11/09 Javascript
js实现全屏漂浮广告移入光标停止移动
2013/12/02 Javascript
javascript使用for循环批量注册的事件不能正确获取索引值的解决方法
2014/12/20 Javascript
node.js微信公众平台开发教程
2016/03/04 Javascript
Vue.js实现在下拉列表区域外点击即可关闭下拉列表的功能(自定义下拉列表)
2017/05/30 Javascript
用node-webkit把web应用打包成桌面应用(windows环境)
2018/02/01 Javascript
Vue实现侧边菜单栏手风琴效果实例代码
2018/05/31 Javascript
浅析vue中的MVVM实现原理
2019/03/04 Javascript
vue单页面在微信下只能分享落地页的解决方案
2019/04/15 Javascript
JavaScript 格式化数字、金额、千分位、保留几位小数、舍入舍去
2019/07/23 Javascript
微信小程序常用的3种提示弹窗实现详解
2019/09/19 Javascript
js实现点赞效果
2020/03/16 Javascript
Python 返回汉字的汉语拼音
2009/02/27 Python
Python正则表达式介绍
2012/08/06 Python
简述Python中的进程、线程、协程
2016/03/18 Python
Python面向对象class类属性及子类用法分析
2018/02/02 Python
python rsync服务器之间文件夹同步脚本
2019/08/29 Python
HTML5移动端开发遇见的东西
2019/10/11 HTML / CSS
Marks & Spencer爱尔兰:英国马莎百货
2016/04/20 全球购物
EGO Shoes美国/加拿大:英国时髦鞋类品牌
2018/08/04 全球购物
工商管理本科毕业生求职信范文
2013/10/05 职场文书
项目合作计划书
2014/01/09 职场文书
职工运动会邀请函
2014/01/19 职场文书
预备党员综合考察材料
2014/05/31 职场文书
房产授权委托书范本
2014/09/22 职场文书
小学生心理健康活动总结
2015/05/08 职场文书
驳回起诉裁定书
2015/05/19 职场文书
Window server中安装Redis的超详细教程
2021/11/17 Redis
一次SQL查询优化原理分析(900W+数据从17s到300ms)
2022/06/10 SQL Server