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 相关文章推荐
Web服务器框架 Tornado简介
Jul 16 Python
python机器学习理论与实战(六)支持向量机
Jan 19 Python
Python+threading模块对单个接口进行并发测试
Jun 25 Python
Pandas中Series和DataFrame的索引实现
Jun 27 Python
python对矩阵进行转置的2种处理方法
Jul 17 Python
python matplotlib画盒图、子图解决坐标轴标签重叠的问题
Jan 19 Python
Python第三方库的几种安装方式(小结)
Apr 03 Python
python实现时间序列自相关图(acf)、偏自相关图(pacf)教程
Jun 03 Python
Python datetime模块使用方法小结
Jun 18 Python
浅谈django框架集成swagger以及自定义参数问题
Jul 07 Python
ubuntu16.04升级Python3.5到Python3.7的方法步骤
Aug 20 Python
Docker如何部署Python项目的实现详解
Oct 26 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
深入PHP curl参数的详解
2013/06/17 PHP
phpmailer在服务器上不能正常发送邮件的解决办法
2014/07/08 PHP
Zend Guard使用指南及问题处理
2015/01/07 PHP
简单介绍PHP的责任链编程模式
2015/08/11 PHP
PHP指定截取字符串中的中英文或数字字符的实例分享
2016/03/18 PHP
javascript将数组插入到另一个数组中的代码
2013/01/10 Javascript
Js中获取frames中的元素示例代码
2013/07/30 Javascript
父元素与子iframe相互获取变量和元素对象的具体实现
2013/10/15 Javascript
JS文本获得焦点清除文本文字的示例代码
2014/01/13 Javascript
原生javascript实现拖动元素示例代码
2014/09/01 Javascript
原生js实现的贪吃蛇网页版游戏完整实例
2015/05/18 Javascript
JQuery选择器、过滤器大整理
2015/05/26 Javascript
跟我学习javascript的函数调用和构造函数调用
2015/11/16 Javascript
基于jQuery Tipso插件实现消息提示框特效
2016/03/16 Javascript
JavaScript贪吃蛇小组件实例代码
2017/08/20 Javascript
koa socket即时通讯的示例代码
2018/09/07 Javascript
egg.js的基本使用和调用数据库的方法示例
2019/05/18 Javascript
JS回调函数原理与用法详解【附PHP回调函数】
2019/07/20 Javascript
python skimage 连通性区域检测方法
2018/06/21 Python
python版opencv摄像头人脸实时检测方法
2018/08/03 Python
python读取图片任意范围区域
2019/01/23 Python
python3.6生成器yield用法实例分析
2019/08/23 Python
关于keras.layers.Conv1D的kernel_size参数使用介绍
2020/05/22 Python
用于ETL的Python数据转换工具详解
2020/07/21 Python
Matplotlib 绘制饼图解决文字重叠的方法
2020/07/24 Python
python+appium+yaml移动端自动化测试框架实现详解
2020/11/24 Python
浅析几个CSS3常用功能的写法
2014/06/05 HTML / CSS
html5移动端自适应布局的实现
2020/04/15 HTML / CSS
Emporio Armani腕表天猫官方旗舰店:乔治·阿玛尼为年轻人设计的副线品牌
2017/07/02 全球购物
Coccinelle官网:意大利的著名皮具品牌
2019/05/15 全球购物
大学运动会通讯稿
2014/01/28 职场文书
学校消防演习方案
2014/02/19 职场文书
汽车促销活动方案
2014/03/31 职场文书
Python竟然能剪辑视频
2021/05/25 Python
Android自定义ScrollView实现阻尼回弹
2022/04/01 Java/Android
利用 Python 的 Pandas和 NumPy 库来清理数据
2022/04/13 Python