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解析模块(ConfigParser)使用方法
Dec 10 Python
Python递归遍历列表及输出的实现方法
May 19 Python
在Python中操作列表之list.extend()方法的使用
May 20 Python
Python全排列操作实例分析
Jul 24 Python
python多线程调用exit无法退出的解决方法
Feb 18 Python
python使用pipeline批量读写redis的方法
Feb 18 Python
python使用Pandas库提升项目的运行速度过程详解
Jul 12 Python
Python求解正态分布置信区间教程
Nov 20 Python
Python基础之变量基本用法与进阶详解
Jan 03 Python
Python爬虫工具requests-html使用解析
Apr 29 Python
Django --Xadmin 判断登录者身份实例
Jul 03 Python
Python数据分析之pandas函数详解
Apr 21 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
人工智能开始玩《星际争霸2》 你的操作跟得上吗?
2017/08/11 星际争霸
解决PHP4.0 和 PHP5.0类构造函数的兼容问题
2013/08/01 PHP
PHP 正则表达式小结
2015/02/12 PHP
PHP代码实现表单数据验证类
2015/07/28 PHP
jquery 提示信息显示后自动消失的具体实现
2013/12/18 Javascript
告诉你什么是javascript的回调函数
2014/09/04 Javascript
jQuery制作简单柱状图实例
2015/01/28 Javascript
深入理解JavaScript系列(29):设计模式之装饰者模式详解
2015/03/03 Javascript
javascript运动详解
2015/07/06 Javascript
jquery控制显示服务器生成的图片流
2015/08/04 Javascript
AngularJs实现ng1.3+表单验证
2015/12/10 Javascript
JavaScript控制浏览器全屏及各种浏览器全屏模式的方法、属性和事件
2015/12/20 Javascript
JavaScript代码性能优化总结(推荐)
2016/05/16 Javascript
微信小程序 swiper组件详解及实例代码
2016/10/25 Javascript
JavaScript实现的鼠标响应颜色渐变效果完整实例
2017/02/18 Javascript
微信小程序遇到修改数据后页面不渲染的问题解决
2017/03/09 Javascript
原生js实现省市区三级联动代码分享
2018/02/12 Javascript
VueJS 组件参数名命名与组件属性转化问题
2018/12/03 Javascript
Vue2.4+新增属性.sync、$attrs、$listeners的具体使用
2020/03/08 Javascript
vue实现户籍管理系统
2020/05/29 Javascript
使用Python实现博客上进行自动翻页
2017/08/23 Python
浅谈Python使用Bottle来提供一个简单的web服务
2017/12/27 Python
微信跳一跳辅助python代码实现
2018/01/05 Python
python广度优先搜索得到两点间最短路径
2019/01/17 Python
50行Python代码实现视频中物体颜色识别和跟踪(必须以红色为例)
2019/11/20 Python
Python猴子补丁知识点总结
2020/01/05 Python
基于python的docx模块处理word和WPS的docx格式文件方式
2020/02/13 Python
关于css兼容性问题及一些常见问题汇总
2016/05/03 HTML / CSS
本科生求职简历的自我评价
2013/10/21 职场文书
刑事和解协议书范本
2014/11/19 职场文书
2014年纠风工作总结
2014/12/08 职场文书
少年雷锋观后感
2015/06/10 职场文书
2016大学迎新欢迎词
2015/09/29 职场文书
Django利用AJAX技术实现博文实时搜索
2021/05/06 Python
windows安装python超详细图文教程
2021/05/21 Python
解决Mysql多行子查询的使用及空值问题
2022/01/22 MySQL