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中unittest用法实例
Sep 25 Python
Python中IPYTHON入门实例
May 11 Python
Python实现模拟登录及表单提交的方法
Jul 25 Python
python3编码问题汇总
Sep 06 Python
Python抽象和自定义类定义与用法示例
Aug 23 Python
Ubuntu18.04中Python2.7与Python3.6环境切换
Jun 14 Python
PyQt5笔记之弹出窗口大全
Jun 20 Python
python django生成迁移文件的实例
Aug 31 Python
python输入错误后删除的方法
Oct 12 Python
pycharm激活方法到2099年(激活流程)
Sep 22 Python
python从ftp获取文件并下载到本地
Dec 05 Python
解决python存数据库速度太慢的问题
Apr 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
php+mysqli预处理技术实现添加、修改及删除多条数据的方法
2015/01/30 PHP
php简单备份与还原MySql的方法
2016/05/09 PHP
利用Laravel事件系统如何实现登录日志的记录详解
2017/05/20 PHP
数据结构之利用PHP实现二分搜索树
2020/10/25 PHP
javascript学习笔记(三)BOM和DOM详解
2014/09/30 Javascript
在JavaScript中操作时间之getUTCDate()方法的使用
2015/06/10 Javascript
全系IE支持Bootstrap的解决方法
2015/10/19 Javascript
移动端点击图片放大特效PhotoSwipe.js插件实现
2016/08/25 Javascript
jQuery实现一个简单的轮播图
2017/02/19 Javascript
深入理解Node中的buffer模块
2017/06/03 Javascript
GOJS+VUE实现流程图效果
2018/12/01 Javascript
nodejs基础之多进程实例详解
2018/12/27 NodeJs
Postman参数化实现过程及原理解析
2020/08/13 Javascript
[05:06]DOTA2-DPC中国联赛 正赛 VG vs Magma选手采访
2021/03/11 DOTA
Python Pywavelet 小波阈值实例
2019/01/09 Python
浅谈Python 多进程默认不能共享全局变量的问题
2019/01/11 Python
python+logging+yaml实现日志分割
2019/07/22 Python
pytorch中的上采样以及各种反操作,求逆操作详解
2020/01/03 Python
使用Django xadmin 实现修改时间选择器为不可输入状态
2020/03/30 Python
CSS3之多背景background使用示例
2013/10/18 HTML / CSS
iPhoneX安全区域(Safe Area)底部小黑条在微信小程序和H5的屏幕适配
2020/04/08 HTML / CSS
实习生自荐信范文
2013/11/13 职场文书
档案检查欢迎词
2014/01/13 职场文书
阿德的梦教学反思
2014/02/06 职场文书
自立自强的名人事例
2014/02/10 职场文书
搞笑婚礼主持词
2014/03/13 职场文书
贯彻学习两会心得体会范文
2014/03/17 职场文书
锦旗标语大全
2014/06/23 职场文书
2014年计划生育协会工作总结
2014/11/14 职场文书
万能检讨书
2015/01/27 职场文书
酒店人事专员岗位职责
2015/04/07 职场文书
应用最多的公文《通知》如何写?
2019/04/02 职场文书
分享15个Webpack实用的插件!!!
2021/03/31 Javascript
springboot使用Redis作缓存使用入门教程
2021/07/25 Redis
postman中form-data、x-www-form-urlencoded、raw、binary的区别介绍
2022/01/18 HTML / CSS
V Rising 服务器搭建图文教程
2022/06/16 Servers