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升级提示Tkinter模块找不到的解决方法
Aug 22 Python
浅谈MySQL中的触发器
May 05 Python
利用Python脚本生成sitemap.xml的实现方法
Jan 31 Python
用Python实现KNN分类算法
Dec 22 Python
浅谈python中拼接路径os.path.join斜杠的问题
Oct 23 Python
Python中flatten( )函数及函数用法详解
Nov 02 Python
Django发送邮件和itsdangerous模块的配合使用解析
Aug 10 Python
Pytorch抽取网络层的Feature Map(Vgg)实例
Aug 20 Python
ipad上运行python的方法步骤
Oct 12 Python
flask 实现token机制的示例代码
Nov 07 Python
Python变量作用域LEGB用法解析
Feb 04 Python
python等差数列求和公式前 100 项的和实例
Feb 25 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+MYSQL 出现乱码的解决方法
2008/08/08 PHP
php 删除cookie方法详解
2014/12/01 PHP
学习php设计模式 php实现命令模式(command)
2015/12/08 PHP
Ajax提交表单时验证码自动验证 php后端验证码检测
2016/07/20 PHP
关于php支持的协议与封装协议总结(推荐)
2017/11/17 PHP
php微信支付之公众号支付功能
2018/05/30 PHP
用JTrackBar实现的模拟苹果风格的滚动条
2007/08/06 Javascript
jQuery移动和复制dom节点实用DOM操作案例
2012/12/17 Javascript
JavaScript获取当前网页最后修改时间的方法
2015/04/03 Javascript
js实现头像图片切割缩放及无刷新上传图片的方法
2015/07/17 Javascript
jQuery调用Webservice传递json数组的方法
2016/08/06 Javascript
ajax实现加载页面、删除、查看详细信息 bootstrap美化页面!
2017/03/14 Javascript
jQuery Layer弹出层传值到父页面的实现代码
2017/08/17 jQuery
Vue波纹按钮组件制作
2018/04/30 Javascript
React中如何引入Angular组件详解
2018/08/09 Javascript
node.js使用stream模块实现自定义流示例
2020/02/13 Javascript
vue 使用v-for进行循环的实例代码详解
2020/02/19 Javascript
JS实现简易日历效果
2021/01/25 Javascript
[01:02:34]TFT vs VGJ.T Supermajor 败者组 BO3 第二场 6.5
2018/06/06 DOTA
深入浅析python继承问题
2016/05/29 Python
详解python 发送邮件实例代码
2016/12/22 Python
详解 Python中LEGB和闭包及装饰器
2017/08/03 Python
Python基于Floyd算法求解最短路径距离问题实例详解
2018/05/16 Python
Python3获取拉勾网招聘信息的方法实例
2019/04/03 Python
python通过txt文件批量安装依赖包的实现步骤
2019/08/13 Python
使用python实现离散时间傅里叶变换的方法
2019/09/02 Python
python实现坦克大战
2020/04/24 Python
医学院学生求职简历的自我评价
2013/10/24 职场文书
幼儿园消防安全制度
2014/01/26 职场文书
致标枪运动员广播稿
2014/02/06 职场文书
2015年设计师个人工作总结
2015/04/25 职场文书
简爱电影观后感
2015/06/10 职场文书
党员读书活动心得体会
2016/01/14 职场文书
听课评课活动心得体会
2016/01/15 职场文书
nginx location优先级的深入讲解
2021/03/31 Servers
nginx负载功能+nfs服务器功能解析
2022/02/28 Servers