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 04 Python
Python爬虫实现获取动态gif格式搞笑图片的方法示例
Dec 24 Python
Django Sitemap 站点地图的实现方法
Apr 29 Python
Python替换月份为英文缩写的实现方法
Jul 15 Python
Flask框架重定向,错误显示,Responses响应及Sessions会话操作示例
Aug 01 Python
基于Python安装pyecharts所遇的问题及解决方法
Aug 12 Python
python3 pathlib库Path类方法总结
Dec 26 Python
python自动化unittest yaml使用过程解析
Feb 03 Python
Python爬虫程序架构和运行流程原理解析
Mar 09 Python
Python 解析xml文件的示例
Sep 29 Python
如何用Python编写一个电子考勤系统
Feb 08 Python
python使用pygame创建精灵Sprite
Apr 06 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
Javascript操纵Cookie实现购物车程序
2007/02/15 Javascript
用 JSON 处理缓存
2007/04/27 Javascript
JavaScript判断DOM何时加载完毕的技巧
2012/11/11 Javascript
js控制input框只读实现示例
2014/01/20 Javascript
jquery控制display属性为none或block
2014/03/31 Javascript
JavaScript中对象property的删除方法介绍
2014/12/30 Javascript
简介JavaScript中用于处理正切的Math.tan()方法
2015/06/15 Javascript
基于Jquery实现仿百度百科右侧导航代码附源码下载
2015/11/27 Javascript
完美解决js传递参数中加号和&号自动改变的方法
2016/10/11 Javascript
JS正则表达式验证账号、手机号、电话和邮箱是否合法
2017/03/08 Javascript
javascript 秒表计时器实现代码
2017/03/09 Javascript
Ionic2开发环境搭建教程
2020/08/20 Javascript
Angular4 中常用的指令入门总结
2017/06/12 Javascript
开发用到的js封装方法(20种)
2018/10/12 Javascript
深入理解Vue.js轻量高效的前端组件化方案
2018/12/10 Javascript
详解vue开发中调用微信jssdk的问题
2019/04/16 Javascript
vue模块移动组件的实现示例
2020/05/20 Javascript
Vue实现手机号、验证码登录(60s禁用倒计时)
2020/12/19 Vue.js
[02:14]2016国际邀请赛中国区预选赛Ehome晋级之路
2016/07/01 DOTA
python逆向入门教程
2018/01/15 Python
解决tensorflow测试模型时NotFoundError错误的问题
2018/07/26 Python
Python实现输入二叉树的先序和中序遍历,再输出后序遍历操作示例
2018/07/27 Python
利用Python如何批量修改数据库执行Sql文件
2018/07/29 Python
python得到qq句柄,并显示在前台的方法
2018/10/14 Python
python redis 批量设置过期key过程解析
2019/11/26 Python
python 通过 pybind11 使用Eigen加速代码的步骤
2020/12/07 Python
详解win10下pytorch-gpu安装以及CUDA详细安装过程
2021/01/28 Python
CSS3实现可关闭的下拉手风琴菜单效果
2015/08/31 HTML / CSS
萨克斯第五大道的折扣店:Saks Fifth Avenue OFF 5TH
2016/08/25 全球购物
药品促销活动方案
2014/02/14 职场文书
英语三分钟演讲稿
2014/08/19 职场文书
端午节活动总结
2014/08/26 职场文书
于丹讲座视频观后感
2015/06/15 职场文书
2016教师廉洁教育心得体会
2016/01/13 职场文书
Win11局域网共享权限在哪里设置? Win11高级共享的设置技巧
2022/04/05 数码科技
Golang日志包的使用
2022/04/20 Golang