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命令行交互提示符的方法
Jan 14 Python
Python爬虫利用cookie实现模拟登陆实例详解
Jan 12 Python
python编写暴力破解zip文档程序的实例讲解
Apr 24 Python
python实现人民币大写转换
Jun 20 Python
详解django自定义中间件处理
Nov 21 Python
Python将列表数据写入文件(txt, csv,excel)
Apr 03 Python
Python 装饰器原理、定义与用法详解
Dec 07 Python
Python 实现数组相减示例
Dec 27 Python
tensorflow 实现数据类型转换
Feb 17 Python
python 如何调用远程接口
Sep 11 Python
Python字符串的15个基本操作(小结)
Feb 03 Python
详解python第三方库的安装、PyInstaller库、random库
Mar 03 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
浅谈使用 Yii2 AssetBundle 中 $publishOptions 的正确姿势
2017/11/08 PHP
PDO::beginTransaction讲解
2019/01/27 PHP
Extjs在exlipse中设置自动提示的方法
2010/04/07 Javascript
解决ExtJS在chrome或火狐中正常显示在ie中不显示的浏览器兼容问题
2013/01/11 Javascript
判断javascript的数据类型(示例代码)
2013/12/11 Javascript
JavaScript中的数组特性介绍
2014/12/30 Javascript
js实现右下角提示框的方法
2015/02/03 Javascript
JS实现关闭当前页而不弹出提示框的方法
2016/06/22 Javascript
JavaScript中日常收集常见的10种错误(推荐)
2017/01/08 Javascript
详解vue2.0 使用动态组件实现 Tab 标签页切换效果(vue-cli)
2017/08/30 Javascript
Vue项目使用localStorage+Vuex保存用户登录信息
2019/05/27 Javascript
JavaScript 如何计算文本的行数的实现
2020/09/14 Javascript
python 实现堆排序算法代码
2012/06/05 Python
Django中URLconf和include()的协同工作方法
2015/07/20 Python
Python通过调用mysql存储过程实现更新数据功能示例
2018/04/03 Python
对Python 多线程统计所有csv文件的行数方法详解
2019/02/12 Python
解决Python对齐文本字符串问题
2019/08/28 Python
python3中rank函数的用法
2019/11/27 Python
python wav模块获取采样率 采样点声道量化位数(实例代码)
2020/01/22 Python
Python基于codecs模块实现文件读写案例解析
2020/05/11 Python
Virtualenv 搭建 Py项目运行环境的教程详解
2020/06/22 Python
Python之字典添加元素的几种方法
2020/09/30 Python
使用HTML5和CSS3表单验证功能
2017/05/05 HTML / CSS
video.js支持m3u8格式直播的实现示例
2020/05/20 HTML / CSS
应用化学专业职业生涯规划书
2014/01/22 职场文书
学校消防演习方案
2014/02/19 职场文书
俄语专业毕业生求职信
2014/07/12 职场文书
党的群众路线教育实践活动对照检查材料(个人)
2014/09/24 职场文书
服务员岗位职责
2015/02/03 职场文书
学校后勤工作总结2015
2015/05/15 职场文书
安全教育片观后感
2015/06/17 职场文书
《大禹治水》教学反思
2016/02/22 职场文书
创新创业项目计划书该怎样写?
2019/08/13 职场文书
教师节作文之小学四年级
2019/09/03 职场文书
Python实现为PDF去除水印的示例代码
2022/04/03 Python
Mysql将字符串按照指定字符分割的正确方法
2022/05/30 MySQL