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 相关文章推荐
Python中Threading用法详解
Dec 27 Python
Python查看微信撤回消息代码
Jun 07 Python
python微信好友数据分析详解
Nov 19 Python
详解python列表生成式和列表生成式器区别
Mar 27 Python
python面试题小结附答案实例代码
Apr 11 Python
利用Python库Scapy解析pcap文件的方法
Jul 23 Python
Python文件操作基础流程解析
Mar 19 Python
Django models文件模型变更错误解决
May 11 Python
Python如何生成xml文件
Jun 04 Python
django使用graphql的实例
Sep 02 Python
M1芯片安装python3.9.1的实现
Feb 02 Python
一篇文章搞懂python混乱的切换操作与优雅的推导式
Aug 23 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
火影忍者:三大瞳力之一的白眼,为什么没有写轮眼那么出色?
2020/03/02 日漫
记录mysql性能查询过程的使用方法
2013/05/02 PHP
PHP如何实现Unicode和Utf-8编码相互转换
2015/07/29 PHP
如何使用微信公众平台开发模式实现多客服
2016/01/06 PHP
PHP连接MYSQL数据库实例代码
2016/01/20 PHP
PHP中静态变量的使用方法实例分析
2016/12/01 PHP
laravel框架添加数据,显示数据,返回成功值的方法
2019/10/11 PHP
基于jquery的复制网页内容到WORD的实现代码
2011/02/16 Javascript
caller和callee的区别介绍及演示结果
2013/03/10 Javascript
原生js和jquery中有关透明度设置的相关问题
2014/01/08 Javascript
js二维数组定义和初始化的三种方法总结
2014/03/03 Javascript
js简单的表格添加行和删除行操作示例
2014/03/31 Javascript
基于jquery实现的可编辑下拉框实现代码
2014/08/02 Javascript
JavaScript实现可拖拽的拖动层Div实例
2015/08/05 Javascript
jQuery+PHP+MySQL二级联动下拉菜单实例讲解
2015/10/27 Javascript
学习javascript面向对象 实例讲解面向对象选项卡
2016/01/04 Javascript
详解VUE的状态控制与延时加载刷新
2017/03/27 Javascript
js学习心得_一个简单的动画库封装tween.js
2017/07/14 Javascript
基于JSONP原理解析(推荐)
2017/12/04 Javascript
VUE 实现复制内容到剪贴板的两种方法
2019/04/24 Javascript
深入学习TypeScript 、React、 Redux和Ant-Design的最佳实践
2019/06/17 Javascript
使用 Element UI Table 的 slot-scope方法
2019/10/10 Javascript
python计算圆周长、面积、球体体积并画出圆
2014/04/08 Python
Python网络爬虫实例讲解
2016/04/28 Python
Python Django切换MySQL数据库实例详解
2019/07/16 Python
使用PyCharm进行远程开发和调试的实现
2019/11/04 Python
Pytorch evaluation每次运行结果不同的解决
2020/01/02 Python
python设置环境变量的作用整理
2020/02/17 Python
Python %r和%s区别代码实例解析
2020/04/03 Python
在django中form的label和verbose name的区别说明
2020/05/20 Python
使用openCV去除文字中乱入的线条实例
2020/06/02 Python
计算机通信工程专业毕业生推荐信
2013/12/24 职场文书
文明礼貌演讲稿
2014/05/12 职场文书
社区维稳工作方案
2014/06/06 职场文书
运动会演讲稿200字
2014/08/25 职场文书
MySQL时间设置注意事项的深入总结
2021/05/06 MySQL