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参数和作用域的使用
Nov 01 Python
python局域网ip扫描示例分享
Apr 03 Python
Python中bisect的用法
Sep 23 Python
Python实现求最大公约数及判断素数的方法
May 26 Python
bpython 功能强大的Python shell
Feb 16 Python
python 排序算法总结及实例详解
Sep 28 Python
python如何使用正则表达式的前向、后向搜索及前向搜索否定模式详解
Nov 08 Python
Python中字符串与编码示例代码
May 20 Python
Django视图扩展类知识点详解
Oct 25 Python
使用pandas 将DataFrame转化成dict
Dec 10 Python
在django中使用post方法时,需要增加csrftoken的例子
Mar 13 Python
浅析python 定时拆分备份 nginx 日志的方法
Apr 27 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 cookies中删除的一般赋值方法
2011/05/07 PHP
php 大数据量及海量数据处理算法总结
2011/05/07 PHP
php eval函数用法 PHP中eval()函数小技巧
2012/10/31 PHP
PHP在linux上执行外部命令的方法
2017/02/06 PHP
PHP实现动态删除XML数据的方法示例
2018/03/30 PHP
PHP实现的无限分类类库定义与用法示例【基于thinkPHP】
2018/08/06 PHP
PHP htmlspecialchars() 函数实例代码及用法大全
2018/09/18 PHP
PHP基于面向对象封装的分页类示例
2019/03/15 PHP
Swoole4.4协程抢占式调度器详解
2019/05/23 PHP
Thinkphp5框架实现获取数据库数据到视图的方法
2019/08/14 PHP
PHP Swoole异步Redis客户端实现方法示例
2019/10/24 PHP
分享10篇优秀的jQuery幻灯片制作教程及应用案例
2011/04/16 Javascript
js解析与序列化json数据(一)json.stringify()的基本用法
2013/02/01 Javascript
将Datatable转化成json发送前台实现思路
2013/09/06 Javascript
js实现弹窗插件功能实例代码分享
2013/12/12 Javascript
javascript实现获取cookie过期时间的变通方法
2014/08/14 Javascript
Node.js中JavaScript操作MySQL的常用方法整理
2016/03/01 Javascript
jQuery Checkbox 全选 反选的简单实例
2016/11/29 Javascript
BootStrap modal实现拖拽功能
2018/12/01 Javascript
如何构建 vue-ssr 项目的方法步骤
2020/08/04 Javascript
[37:21]完美世界DOTA2联赛PWL S2 Inki vs Magma 第二场 11.22
2020/11/24 DOTA
Python 随机生成中文验证码的实例代码
2013/03/20 Python
详解python上传文件和字符到PHP服务器
2017/11/24 Python
Python定义二叉树及4种遍历方法实例详解
2018/07/05 Python
在Django中URL正则表达式匹配的方法
2018/12/20 Python
Python中单线程、多线程和多进程的效率对比实验实例
2019/05/14 Python
Python子进程subpocess原理及用法解析
2020/07/16 Python
详解前端HTML5几种存储方式的总结
2016/12/27 HTML / CSS
阿迪达斯丹麦官网:adidas丹麦
2016/10/01 全球购物
ROSEFIELD手表荷兰官方网上商店:北欧极简设计女士腕表品牌
2018/01/24 全球购物
荷兰包包购物网站:The Little Green Bag
2018/03/17 全球购物
爱耳日宣传活动总结
2014/07/05 职场文书
自主招生自荐信格式范文
2015/03/25 职场文书
成人成长感言如何写?
2019/08/16 职场文书
python编程实现清理微信重复缓存文件
2021/11/01 Python
Python实现日志实时监测的示例详解
2022/04/06 Python