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如何通过protobuf实现rpc
Mar 06 Python
python连接数据库的方法
Oct 19 Python
Python反射用法实例简析
Dec 22 Python
python实现简易云音乐播放器
Jan 04 Python
Python3自动签到 定时任务 判断节假日的实例
Nov 13 Python
使用python实现简单五子棋游戏
Jun 18 Python
Python求两点之间的直线距离(2种实现方法)
Jul 07 Python
Python语言异常处理测试过程解析
Jan 08 Python
TensorFlow梯度求解tf.gradients实例
Feb 04 Python
Tensorflow进行多维矩阵的拆分与拼接实例
Feb 07 Python
10个python3常用排序算法详细说明与实例(快速排序,冒泡排序,桶排序,基数排序,堆排序,希尔排序,归并排序,计数排序)
Mar 17 Python
python 连续不等式语法糖实例
Apr 15 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获取用户浏览器版本的方法
2015/01/03 PHP
CakePHP框架Model关联对象用法分析
2017/08/04 PHP
Laravel中服务提供者和门面模式的入门介绍
2017/11/06 PHP
浅谈PHP中如何实现Hook机制
2017/11/14 PHP
javascript+dom树型菜单类,希望朋友们一起进步
2007/05/03 Javascript
qTip 基于JQuery的Tooltip插件[兼容性好]
2010/09/01 Javascript
js判断IE6/IE7/FF的代码[XMLHttpRequest]
2011/02/16 Javascript
JS防止用户多次提交的简单代码
2013/08/01 Javascript
jquery跨域请求示例分享(jquery发送ajax请求)
2014/03/25 Javascript
jquery获取当前日期的方法
2015/01/14 Javascript
js实现表单多按钮提交action的处理方法
2015/10/24 Javascript
所见即所得的富文本编辑器bootstrap-wysiwyg使用方法详解
2016/05/27 Javascript
mvc中form表单提交的三种方式(推荐)
2016/08/10 Javascript
微信小程序-获得用户输入内容
2017/02/13 Javascript
Javascript前端经典的面试题及答案
2017/03/14 Javascript
JS控件bootstrap datepicker使用方法详解
2017/03/25 Javascript
mac上node.js环境的安装测试
2017/07/03 Javascript
MVVM框架下实现分页功能示例
2018/06/14 Javascript
Node.js API详解之 module模块用法实例分析
2020/05/13 Javascript
JavaScript实现Tab标签页切换的最简便方式(4种)
2020/06/28 Javascript
关于ES6尾调用优化的使用
2020/09/11 Javascript
python 3利用BeautifulSoup抓取div标签的方法示例
2017/05/28 Python
Pycharm导入Python包,模块的图文教程
2018/06/13 Python
利用python打开摄像头及颜色检测方法
2018/08/03 Python
python 对多个csv文件分别进行处理的方法
2019/01/07 Python
pow在python中的含义及用法
2019/07/11 Python
最小二乘法及其python实现详解
2020/02/24 Python
Python Socket多线程并发原理及实现
2020/12/11 Python
用HTML5实现网站在windows8中贴靠的方法
2013/04/21 HTML / CSS
Ruby如何定义一个类
2012/10/08 面试题
英语专业个人求职自荐信
2013/09/21 职场文书
党校自我鉴定范文
2013/10/02 职场文书
简单的大学生自我鉴定
2014/02/18 职场文书
无财产无子女离婚协议书范文
2014/09/14 职场文书
2015年党员公开承诺事项
2015/04/27 职场文书
Spring Security使用单点登录的权限功能
2022/04/03 Java/Android