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实现文件快照加密保护的方法
Jun 30 Python
Python整型运算之布尔型、标准整型、长整型操作示例
Jul 21 Python
python实现决策树
Dec 21 Python
Python操作MySQL模拟银行转账
Mar 12 Python
解决python删除文件的权限错误问题
Apr 24 Python
Python3基于sax解析xml操作示例
May 22 Python
Python求解任意闭区间的所有素数
Jun 10 Python
django项目搭建与Session使用详解
Oct 10 Python
python try except返回异常的信息字符串代码实例
Aug 15 Python
python对指定字符串逆序的6种方法(小结)
Apr 02 Python
Python Opencv轮廓常用操作代码实例解析
Sep 01 Python
教你怎么用python实现字符串转日期
May 24 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
要会喝咖啡也要会知道咖啡豆
2021/03/03 咖啡文化
PHP函数之日期时间函数date()使用详解
2013/09/09 PHP
PHP使用PHPMailer发送邮件的简单使用方法
2013/11/12 PHP
linux下安装php的memcached客户端
2014/08/03 PHP
PHP实现视频文件上传完整实例
2014/08/28 PHP
PHP内核探索之变量
2015/12/22 PHP
PHP抽象类基本用法示例
2018/12/28 PHP
javascript 密码强弱度检测万能插件
2009/02/25 Javascript
日期 时间js控件
2009/05/07 Javascript
JQuery入门——用映射方式绑定不同事件应用示例
2013/02/05 Javascript
node.js中 stream使用教程
2016/08/28 Javascript
js canvas仿支付宝芝麻信用分仪表盘
2016/11/16 Javascript
slideToggle+slideup实现手机端折叠菜单效果
2017/05/25 Javascript
浅谈vue项目可以从哪些方面进行优化
2018/05/05 Javascript
微信小程序webview实现长按点击识别二维码功能示例
2019/01/24 Javascript
详解es6新增数组方法简便了哪些操作
2019/05/09 Javascript
vue实现列表拖拽排序的功能
2020/11/02 Javascript
[00:32]2018DOTA2亚洲邀请赛EG出场
2018/04/03 DOTA
python动态参数用法实例分析
2015/05/25 Python
CentOS 6.5下安装Python 3.5.2(与Python2并存)
2017/06/05 Python
基于Python的ModbusTCP客户端实现详解
2019/07/13 Python
Python使用APScheduler实现定时任务过程解析
2019/09/11 Python
Python3.7 读取 mp3 音频文件生成波形图效果
2019/11/05 Python
对python中 math模块下 atan 和 atan2的区别详解
2020/01/17 Python
Python迭代器Iterable判断方法解析
2020/03/16 Python
香港时尚女装购物网站:ZAFUL
2017/07/19 全球购物
银河香水:Galaxy Perfume
2019/03/25 全球购物
英国在线泳装店:Simply Swim
2019/05/05 全球购物
企业安全生产演讲稿
2014/05/09 职场文书
党员一帮一活动总结
2014/07/08 职场文书
成品仓管员岗位职责
2015/04/01 职场文书
幼儿园六一主持词
2015/06/30 职场文书
某药房的新员工入职告知书!
2019/07/15 职场文书
分享15个Webpack实用的插件!!!
2021/03/31 Javascript
Java 中的 Lambda List 转 Map 的多种方法详解
2022/07/07 Java/Android
ubuntu开机后ROS程序自启动问题
2022/12/24 Servers