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 相关文章推荐
python实现百度关键词排名查询
Mar 30 Python
谈谈Python进行验证码识别的一些想法
Jan 25 Python
批处理与python代码混合编程的方法
May 19 Python
numpy 进行数组拼接,分别在行和列上合并的实例
May 08 Python
python3.5 email实现发送邮件功能
May 22 Python
解决webdriver.Chrome()报错:Message:'chromedriver' executable needs to be in Path
Jun 12 Python
Python3.7安装keras和TensorFlow的教程图解
Jun 18 Python
Django 设置admin后台表和App(应用)为中文名的操作方法
May 10 Python
Python3 requests模块如何模仿浏览器及代理
Jun 15 Python
如何解决flask修改静态资源后缓存文件不能及时更改问题
Aug 02 Python
python实现简单的井字棋游戏(gui界面)
Jan 22 Python
python 三种方法提取pdf中的图片
Feb 07 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
Win7 64位系统下PHP连接Oracle数据库
2014/08/20 PHP
PHP+Mysql+jQuery文件下载次数统计实例讲解
2015/10/10 PHP
php 从一个数组中随机的取出若干个不同的数实例
2016/12/31 PHP
PHP实现求连续子数组最大和问题2种解决方法
2017/12/26 PHP
PHP基于递归算法解决兔子生兔子问题
2018/05/11 PHP
PHP fclose函数用法总结
2019/02/15 PHP
extjs DataReader、JsonReader、XmlReader的构造方法
2009/11/07 Javascript
js中if语句的几种优化代码写法
2011/03/12 Javascript
对javascript的一点点认识总结《javascript高级程序设计》读书笔记
2011/11/30 Javascript
用innerhtml提高页面打开速度的方法
2013/08/02 Javascript
javascript获取xml节点的最大值(实现代码)
2013/12/11 Javascript
jQuery中addClass()方法用法实例
2015/01/05 Javascript
JavaScript通过this变量快速找出用户选中radio按钮的方法
2015/03/23 Javascript
javascript创建动态表单的方法
2015/07/25 Javascript
Jquery全选与反选点击执行一次的解决方案
2015/08/14 Javascript
jquery心形点赞关注效果的简单实现
2016/11/14 Javascript
setTimeout函数的神奇使用
2017/02/26 Javascript
Windows下Node.js安装及环境配置方法
2017/09/18 Javascript
基于vue打包后字体和图片资源失效问题的解决方法
2018/03/06 Javascript
解决element-ui中下拉菜单子选项click事件不触发的问题
2018/08/22 Javascript
Vue 动态路由的实现及 Springsecurity 按钮级别的权限控制
2019/09/05 Javascript
[43:47]完美世界DOTA2联赛PWL S3 LBZS vs Phoenix 第一场 12.09
2020/12/11 DOTA
利用Django内置的认证视图实现用户密码重置功能详解
2017/11/24 Python
Python机器学习之SVM支持向量机
2017/12/27 Python
python如何实现视频转代码视频
2019/06/17 Python
python中bs4.BeautifulSoup的基本用法
2019/07/27 Python
python控制台实现tab补全和清屏的例子
2019/08/20 Python
Python使用PyQt5/PySide2编写一个极简的音乐播放器功能
2020/02/07 Python
Python接收手机短信的代码整理
2020/08/02 Python
vue项目实现分页效果
2021/03/24 Vue.js
建议书的格式
2014/05/12 职场文书
工程材料采购方案
2014/05/18 职场文书
夫妻忠诚协议书范本
2014/11/17 职场文书
于丹论语心得观后感
2015/06/15 职场文书
导游词之安徽醉翁亭
2020/01/10 职场文书
idea 在springboot中使用lombok插件的方法
2021/08/02 Java/Android