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使用rabbitmq实现网络爬虫示例
Feb 20 Python
详解Python中heapq模块的用法
Jun 28 Python
Ubuntu16.04/树莓派Python3+opencv配置教程(分享)
Apr 02 Python
django js实现部分页面刷新的示例代码
May 28 Python
Python hashlib模块实例使用详解
Dec 24 Python
Python爬虫库BeautifulSoup的介绍与简单使用实例
Jan 25 Python
django创建css文件夹的具体方法
Jul 31 Python
Python学习笔记之装饰器
Aug 06 Python
Python eval函数介绍及用法
Nov 09 Python
Python爬虫UA伪装爬取的实例讲解
Feb 19 Python
python调试工具Birdseye的使用教程
May 25 Python
教你使用一行Python代码玩遍童年的小游戏
Aug 23 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性能优化准备篇图解PEAR安装
2011/12/05 PHP
php eval函数用法总结
2012/10/31 PHP
php求两个目录的相对路径示例(php获取相对路径)
2014/03/27 PHP
PHP读取txt文本文件并分页显示的方法
2015/03/11 PHP
php识别翻转iphone拍摄的颠倒图片
2018/05/17 PHP
PHP5.5基于mysqli连接MySQL数据库和读取数据操作实例详解
2019/02/16 PHP
PHP生成二维码与识别二维码的方法详解【附源码下载】
2019/03/07 PHP
Laravel统计一段时间间隔的数据方法
2019/10/09 PHP
Nigma vs Alliance BO5 第四场2.14
2021/03/10 DOTA
document.open() 与 document.write()的区别
2007/08/13 Javascript
使用jquery选择器如何获取父级元素、同级元素、子元素
2014/05/14 Javascript
ztree获取选中节点时不能进入可视区域出现BUG如何解决
2015/12/03 Javascript
JS中append字符串包含onclick无效传递参数失败的解决方案
2016/12/26 Javascript
javascript设计模式之中介者模式学习笔记
2017/02/15 Javascript
layui输入框中只允许输入整数的实现方法
2019/09/18 Javascript
微信小程序如何实现在线客服功能
2019/10/16 Javascript
微信小程序静默登录的实现代码
2020/01/08 Javascript
JS轮播图的实现方法
2020/08/24 Javascript
关于angular 8.1使用过程中的一些记录
2020/11/25 Javascript
javascript实现固定侧边栏
2021/02/09 Javascript
[40:10]2015国际邀请赛全明星表演赛
2015/08/07 DOTA
[56:58]VP vs Optic 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
把MySQL表结构映射为Python中的对象的教程
2015/04/07 Python
详解python实现读取邮件数据并下载附件的实例
2017/08/03 Python
python range()函数取反序遍历sequence的方法
2018/06/25 Python
Python数据类型之List列表实例详解
2019/05/08 Python
详解Python打包分发工具setuptools
2019/08/05 Python
django 前端页面如何实现显示前N条数据
2020/03/16 Python
python3字符串输出常见面试题总结
2020/12/01 Python
基本款天堂:Everlane
2017/05/13 全球购物
后勤园长自我鉴定
2013/10/17 职场文书
计算机专业推荐信范文
2013/11/20 职场文书
安全目标责任书
2014/07/22 职场文书
社区元宵节活动总结
2015/02/06 职场文书
学校运动会加油词
2015/07/18 职场文书
Pandas||过滤缺失数据||pd.dropna()函数的用法说明
2021/05/14 Python