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实现在控制台输入密码不显示的方法
Jul 02 Python
使用Python的Flask框架构建大型Web应用程序的结构示例
Jun 04 Python
pandas string转dataframe的方法
Apr 11 Python
Django框架中间件(Middleware)用法实例分析
May 24 Python
Python利用pandas处理Excel数据的应用详解
Jun 18 Python
如何利用Anaconda配置简单的Python环境
Jun 24 Python
python在openstreetmap地图上绘制路线图的实现
Jul 11 Python
Pandas数据离散化原理及实例解析
Nov 16 Python
python实现图片二值化及灰度处理方式
Dec 07 Python
Python使用qrcode二维码库生成二维码方法详解
Feb 17 Python
python使用建议技巧分享(三)
Aug 18 Python
python井字棋游戏实现人机对战
Apr 28 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
SONY ICF-SW55的电路分析
2021/03/02 无线电
apache+codeigniter 通过.htcaccess做动态二级域名解析
2012/07/01 PHP
ThinkPHP跳转页success及error模板实例教程
2014/07/17 PHP
php利用cookies实现购物车的方法
2014/12/10 PHP
使用PHP+AJAX让WordPress动态加载文章的教程
2015/12/11 PHP
yii实现使用CUploadedFile上传文件的方法
2015/12/28 PHP
js onpropertychange输入框 事件获取属性
2009/03/26 Javascript
lyhucSelect基于Jquery的Select数据联动插件
2011/03/29 Javascript
js工具方法弹出蒙版
2013/05/08 Javascript
js获取客户端外网ip的简单实例
2013/11/21 Javascript
遍历DOM对象内的元素属性示例代码
2014/02/08 Javascript
nodejs 实现模拟form表单上传文件
2014/07/14 NodeJs
jQuery取消ajax请求的方法
2015/06/09 Javascript
jquery实现简单实用的打分程序实例
2015/07/23 Javascript
微信小程序 LOL 英雄介绍开发实例
2016/09/30 Javascript
Bootstrap Table使用方法解析
2016/10/19 Javascript
详解Angular2学习笔记之Html属性绑定
2018/01/03 Javascript
弱类型语言javascript开发中的一些坑实例小结【变量、函数、数组、对象、作用域等】
2019/08/07 Javascript
基于JS实现table导出Excel并保留样式
2020/05/19 Javascript
[50:12]EG vs Fnatic 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
用Python进行基础的函数式编程的教程
2015/03/31 Python
简介二分查找算法与相关的Python实现示例
2015/08/26 Python
详解Python 数据库 (sqlite3)应用
2016/12/07 Python
Django应用程序中如何发送电子邮件详解
2017/02/04 Python
http请求 request失败自动重新尝试代码示例
2018/01/25 Python
PyTorch快速搭建神经网络及其保存提取方法详解
2018/04/28 Python
pycharm修改界面主题颜色的方法
2019/01/17 Python
python构造函数init实例方法解析
2020/01/19 Python
pytorch torchvision.ImageFolder的用法介绍
2020/02/20 Python
Python中zip函数如何使用
2020/06/04 Python
详解Python 循环嵌套
2020/07/09 Python
Python pexpect模块及shell脚本except原理解析
2020/08/03 Python
韩国最大的购物网站:Gmarket
2019/06/20 全球购物
解释一下ArrayList Vector和LinkedList的实现和区别
2013/04/26 面试题
学习考察心得体会
2014/09/04 职场文书
教师党员自我评价范文
2015/03/04 职场文书