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编写Linux系统守护进程实例
Feb 03 Python
python Django模板的使用方法
Jan 14 Python
Python3.5编程实现修改IIS WEB.CONFIG的方法示例
Aug 18 Python
Python编写Windows Service服务程序
Jan 04 Python
Selenium控制浏览器常见操作示例
Aug 13 Python
python 图像平移和旋转的实例
Jan 10 Python
浅谈pytorch卷积核大小的设置对全连接神经元的影响
Jan 10 Python
Python 基于jwt实现认证机制流程解析
Jun 22 Python
python 使用elasticsearch 实现翻页的三种方式
Jul 31 Python
django和flask哪个值得研究学习
Jul 31 Python
详解Django中异步任务之django-celery
Nov 05 Python
Python入门基础之数字字符串与列表
Feb 01 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
不用数据库的多用户文件自由上传投票系统(3)
2006/10/09 PHP
php学习笔记 面向对象中[接口]与[多态性]的应用
2011/06/16 PHP
PHP中echo,print_r与var_dump区别分析
2014/09/29 PHP
Yii2如何批量添加数据
2016/05/17 PHP
javascript-TreeView父子联动效果保持节点状态一致
2007/08/12 Javascript
jQuery中live方法的重复绑定说明
2011/10/21 Javascript
jQuery下的动画处理总结
2013/10/10 Javascript
EasyUI,点击开启编辑框,并且编辑框获得焦点的方法
2015/03/01 Javascript
JS实现向表格行添加新单元格的方法
2015/03/30 Javascript
JavaScript实现cookie的写入、读取、删除功能
2015/11/05 Javascript
详解Angular2中的编程对象Observable
2016/09/17 Javascript
VUE元素的隐藏和显示(v-show指令)
2017/06/23 Javascript
深入理解vue Render函数
2017/07/19 Javascript
JS一个简单的注册页面实例
2017/09/05 Javascript
Openlayers+EasyUI Tree动态实现图层控制
2020/09/28 Javascript
Python最长公共子串算法实例
2015/03/07 Python
Python生成器以及应用实例解析
2018/02/08 Python
使用matplotlib画散点图的方法
2018/05/25 Python
Python登录系统界面实现详解
2019/06/25 Python
python爬虫库scrapy简单使用实例详解
2020/02/10 Python
Python3 ID3决策树判断申请贷款是否成功的实现代码
2020/05/21 Python
python实现一次性封装多条sql语句(begin end)
2020/06/06 Python
python能开发游戏吗
2020/06/11 Python
Spring @Enable模块驱动原理及使用实例
2020/06/23 Python
keras K.function获取某层的输出操作
2020/06/29 Python
详解CSS3选择器:nth-child和:nth-of-type之间的差异
2017/09/18 HTML / CSS
Html5游戏开发之乒乓Ping Pong游戏示例(二)
2013/01/21 HTML / CSS
浙江文明网签名寄语
2014/01/18 职场文书
置业顾问岗位职责
2014/03/02 职场文书
后勤管理员岗位职责
2014/08/27 职场文书
网站出售协议书范文
2014/10/10 职场文书
房产公证书格式
2015/01/26 职场文书
故意杀人罪辩护词
2015/05/21 职场文书
2019年浪漫婚礼证婚词
2019/06/27 职场文书
python plt.plot bar 如何设置绘图尺寸大小
2021/06/01 Python
零基础学java之带参数以及返回值的方法
2022/04/10 Java/Android