PYTHON基础-时间日期处理小结


Posted in Python onMay 05, 2018

步骤:

1. 掌握几种对象及其关系
2. 了解每类对象的基本操作方法
3. 通过转化关系转化

涉及对象

1. datetime

>>> import datetime
>>> now = datetime.datetime.now()
>>> now
datetime.datetime(2018, 1, 12, 23, 9, 12, 946118)
>>> type(now)
<type 'datetime.datetime'>

2. timestamp

>>> import time
>>> time.time()
1421075455.568243

3. time tuple

>>> import time
>>> time.localtime()
time.struct_time(tm_year=2015, tm_mon=1, tm_mday=12, tm_hour=23, tm_min=10, tm_sec=30, tm_wday=0, tm_yday=12, tm_isdst=0)

4. string

>>> import datetime
>>> datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
'2015-01-12 23:13:08'

5. date

>>> import datetime
>>> datetime.datetime.now().date()
datetime.date(2015, 1, 12)

datetime基本操作

1. 获取当前datetime

>>> import datetime
>>> datetime.datetime.now()
datetime.datetime(2015, 1, 12, 23, 26, 24, 475680)

2. 获取当天date

>>> datetime.date.today()
datetime.date(2015, 1, 12)

3. 获取明天/前N天

明天

>>> datetime.date.today() + datetime.timedelta(days=1)
datetime.date(2015, 1, 13)

三天前

>>> datetime.datetime.now()
datetime.datetime(2015, 1, 12, 23, 38, 55, 492226)
>>> datetime.datetime.now() - datetime.timedelta(days=3)
datetime.datetime(2015, 1, 9, 23, 38, 57, 59363)

4. 获取当天开始和结束时间(00:00:00 23:59:59)

>>> datetime.datetime.combine(datetime.date.today(), datetime.time.min)
datetime.datetime(2015, 1, 12, 0, 0)
>>> datetime.datetime.combine(datetime.date.today(), datetime.time.max)
datetime.datetime(2015, 1, 12, 23, 59, 59, 999999)

5. 获取两个datetime的时间差

>>> (datetime.datetime(2015,1,13,12,0,0) - datetime.datetime.now()).total_seconds()
44747.768075

6. 获取本周/本月/上月最后一天

本周

>>> today = datetime.date.today()
>>> today
datetime.date(2015, 1, 12)
>>> sunday = today + datetime.timedelta(6 - today.weekday())
>>> sunday
datetime.date(2015, 1, 18)

本月

>>> import calendar
>>> today = datetime.date.today()
>>> _, last_day_num = calendar.monthrange(today.year, today.month)
>>> last_day = datetime.date(today.year, today.month, last_day_num)
>>> last_day
datetime.date(2015, 1, 31)

获取上个月的最后一天(可能跨年)

>>> import datetime
>>> today = datetime.date.today()
>>> first = datetime.date(day=1, month=today.month, year=today.year)
>>> lastMonth = first - datetime.timedelta(days=1)

关系转换

几个关系之间的转化

Datetime Object / String / timestamp / time tuple 

 关系转换例子

datetime <=> string

datetime -> string 

>>> import datetime
>>> datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
'2015-01-12 23:13:08'

string -> datetime

>>> import datetime
>>> datetime.datetime.strptime("2014-12-31 18:20:10", "%Y-%m-%d %H:%M:%S")
datetime.datetime(2014, 12, 31, 18, 20, 10)

datetime <=> timetuple

datetime -> timetuple

>>> import datetime
>>> datetime.datetime.now().timetuple()
time.struct_time(tm_year=2015, tm_mon=1, tm_mday=12, tm_hour=23, tm_min=17, tm_sec=59, tm_wday=0, tm_yday=12, tm_isdst=-1)

timetuple -> datetime

timetuple => timestamp => datetime [看后面datetime<=>timestamp]

datetime <=> date

datetime -> date

>>> import datetime
>>> datetime.datetime.now().date()
datetime.date(2015, 1, 12)

date -> datetime

>>> datetime.date.today()
datetime.date(2015, 1, 12)
>>> today = datetime.date.today()
>>> datetime.datetime.combine(today, datetime.time())
datetime.datetime(2015, 1, 12, 0, 0)
>>> datetime.datetime.combine(today, datetime.time.min)
datetime.datetime(2015, 1, 12, 0, 0)

datetime <=> timestamp

datetime -> timestamp

>>> now = datetime.datetime.now()
>>> timestamp = time.mktime(now.timetuple())
>>> timestamp
1421077403.0

timestamp -> datetime

>>> datetime.datetime.fromtimestamp(1421077403.0)
datetime.datetime(2015, 1, 12, 23, 43, 23)

这篇文章就介绍到这了,基本上都是python的关于日期时间操作的基础知识点,需要掌握好

Python 相关文章推荐
Django自定义分页与bootstrap分页结合
Feb 22 Python
Python编程实现二分法和牛顿迭代法求平方根代码
Dec 04 Python
Python内置模块logging用法实例分析
Feb 12 Python
python django框架中使用FastDFS分布式文件系统的安装方法
Jun 10 Python
tensor和numpy的互相转换的实现示例
Aug 02 Python
Flask框架实现的前端RSA加密与后端Python解密功能详解
Aug 13 Python
浅谈Python 敏感词过滤的实现
Aug 15 Python
wxPython之wx.DC绘制形状
Nov 19 Python
如何在Python对Excel进行读取
Jun 04 Python
在keras 中获取张量 tensor 的维度大小实例
Jun 10 Python
python爬虫用scrapy获取影片的实例分析
Nov 23 Python
python 使用csv模块读写csv格式文件的示例
Dec 02 Python
python 日期操作类代码
May 05 #Python
Python批量发送post请求的实现代码
May 05 #Python
PyQt5 pyqt多线程操作入门
May 05 #Python
详解pyqt5 动画在QThread线程中无法运行问题
May 05 #Python
python中in在list和dict中查找效率的对比分析
May 04 #Python
Django如何配置mysql数据库
May 04 #Python
Python实现求一个集合所有子集的示例
May 04 #Python
You might like
使用zend studio for eclipse不能激活代码提示功能的解决办法
2009/10/11 PHP
php统计文件大小,以GB、MB、KB、B输出
2011/05/29 PHP
第二章 PHP入门基础之php代码写法
2011/12/30 PHP
使用HMAC-SHA1签名方法详解
2013/06/26 PHP
ThinkPHP框架实现session跨域问题的解决方法
2014/07/01 PHP
php+mysql数据库查询实例
2015/01/21 PHP
在Mac OS下搭建LNMP开发环境的步骤详解
2017/03/10 PHP
thinkPHP5框架设置404、403等http状态页面的方法
2018/06/05 PHP
php实现断点续传大文件示例代码
2020/06/19 PHP
jQuery EasyUI API 中文文档 - Menu菜单
2011/10/03 Javascript
js中return false(阻止)的用法
2013/08/14 Javascript
13 款最热门的 jQuery 图像 360 度旋转插件推荐
2014/12/09 Javascript
javascript常见数据验证插件大全
2015/08/03 Javascript
SublimeText自带格式化代码功能之reindent
2015/12/27 Javascript
使用bootstrap-paginator.js 分页来进行ajax 异步分页请求示例
2017/03/09 Javascript
vue小白入门教程
2018/04/02 Javascript
vue.js实现图书管理功能
2019/09/24 Javascript
解决包含在label标签下的checkbox在ie8及以下版本点击事件无效果兼容的问题
2019/10/27 Javascript
解决vue里a标签值解析变量,跳转页面,前面加默认域名端口的问题
2020/07/22 Javascript
[57:59]完美世界DOTA2联赛循环赛 Ink Ice vs LBZS BO2第一场 11.05
2020/11/05 DOTA
在Python下进行UDP网络编程的教程
2015/04/29 Python
Python管理Windows服务小脚本
2018/03/12 Python
selenium在执行phantomjs的API并获取执行结果的方法
2018/12/17 Python
python爬取微信公众号文章的方法
2019/02/26 Python
matplotlib实现区域颜色填充
2019/03/18 Python
python 正则表达式贪婪模式与非贪婪模式原理、用法实例分析
2019/10/14 Python
wxPython实现画图板
2020/08/27 Python
HTML5所有标签汇总及标签意义解释
2015/03/12 HTML / CSS
艺术家策划的室内设计:Curious Egg
2019/03/06 全球购物
关于读书的演讲稿600字
2014/08/27 职场文书
2014年镇党建工作汇报材料
2014/11/02 职场文书
2014年乡镇妇联工作总结
2014/12/02 职场文书
简历中自我评价范文
2015/03/11 职场文书
2015年人力资源工作总结
2015/04/08 职场文书
一年之计:2019年下半年的计划
2019/05/07 职场文书
助学金申请书该怎么写?
2019/07/16 职场文书