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如何实现文本转语音
Aug 08 Python
怎样使用Python脚本日志功能
Aug 14 Python
python实现kMeans算法
Dec 21 Python
python逐行读写txt文件的实例讲解
Apr 03 Python
解决Django的request.POST获取不到内容的问题
May 28 Python
Tensorflow 实现修改张量特定元素的值方法
Jul 30 Python
详解Python发送email的三种方式
Oct 18 Python
利用python实现简易版的贪吃蛇游戏(面向python小白)
Dec 30 Python
Python实现去除图片中指定颜色的像素功能示例
Apr 13 Python
使用Python正则表达式操作文本数据的方法
May 14 Python
Python hashlib模块实例使用详解
Dec 24 Python
Python 解析pymysql模块操作数据库的方法
Feb 18 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
php checkbox 取值详细说明
2010/08/19 PHP
php修改NetBeans默认字体的大小
2013/07/02 PHP
php、mysql查询当天,查询本周,查询本月的数据实例(字段是时间戳)
2017/02/04 PHP
PHP框架自动加载类文件原理详解
2017/06/06 PHP
Laravel学习教程之View模块详解
2017/09/18 PHP
PHP 并发场景的几种解决方案
2019/06/14 PHP
Javascript 事件流和事件绑定
2009/07/16 Javascript
非html5实现js版弹球游戏示例代码
2013/09/22 Javascript
JavaScript错误处理
2015/02/03 Javascript
浅谈Javascript实现继承的方法
2015/07/06 Javascript
angularjs学习笔记之三大模块(modal,controller,view)
2015/09/26 Javascript
在 Express 中使用模板引擎
2015/12/10 Javascript
原生JS实现旋转木马式图片轮播插件
2016/04/25 Javascript
微信小程序 tabs选项卡效果的实现
2017/01/05 Javascript
使用原生js写ajax实例(推荐)
2017/05/31 Javascript
JS Input里添加小图标的两种方法
2017/11/11 Javascript
vue加载自定义的js文件方法
2018/03/13 Javascript
简单介绍react redux的中间件的使用
2018/04/06 Javascript
详解vue使用vue-layer-mobile组件实现toast,loading效果
2018/08/31 Javascript
JavaScript学习笔记之DOM基础操作实例小结
2019/01/09 Javascript
vue中touch和click共存的解决方式
2020/07/28 Javascript
详解Python实现多进程异步事件驱动引擎
2017/08/25 Python
python pandas 对时间序列文件处理的实例
2018/06/22 Python
Django model反向关联名称的方法
2018/12/15 Python
Django处理Ajax发送的Get请求代码详解
2019/07/29 Python
python使用Geany编辑器配置方法
2020/02/21 Python
python利用opencv实现颜色检测
2021/02/23 Python
Rhone官方网站:男士运动服装、健身服装和高级运动服
2019/05/01 全球购物
保密工作实施方案
2014/02/24 职场文书
优秀本科毕业生自荐信
2014/07/04 职场文书
安全环保演讲稿
2014/08/28 职场文书
群众路线教育实践活动批评与自我批评
2014/09/15 职场文书
2015年员工试用期工作总结
2015/05/28 职场文书
小学作文指导之如何写人?
2019/07/08 职场文书
CSS3实现的文字弹出特效
2021/04/16 HTML / CSS
利用Python判断整数是否是回文数的3种方法总结
2021/07/07 Python