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调用cmd命令行制作刷博器
Jan 13 Python
教你用python3根据关键词爬取百度百科的内容
Aug 18 Python
python学习教程之使用py2exe打包
Sep 24 Python
python3调用R的示例代码
Feb 23 Python
如何优雅地改进Django中的模板碎片缓存详解
Jul 04 Python
python基础学习之如何对元组各个元素进行命名详解
Jul 12 Python
python中单例常用的几种实现方法总结
Oct 13 Python
Scrapy框架爬取西刺代理网免费高匿代理的实现代码
Feb 22 Python
python3实现钉钉消息推送的方法示例
Mar 14 Python
Python如何批量获取文件夹的大小并保存
Mar 31 Python
django 实现简单的插入视频
Apr 07 Python
python爬虫使用scrapy注意事项
Nov 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中对xml读取的相关函数的介绍一
2008/06/05 PHP
php切割页面div内容的实现代码分享
2012/07/31 PHP
PHP使用DOMDocument类生成HTML实例(包含常见标签元素)
2014/06/25 PHP
PHP自动重命名文件实现方法
2014/11/04 PHP
PHPStrom 新建FTP项目以及在线操作教程
2016/10/16 PHP
php中通用的excel导出方法实例
2017/12/30 PHP
基于jquery的一个简单的脚本验证插件
2010/04/05 Javascript
jQuery创建平滑的页面滚动(顶部或底部)
2013/02/26 Javascript
Jquery显示、隐藏元素以及添加删除样式
2013/08/09 Javascript
SinaEditor使用方法详解
2013/12/28 Javascript
可编辑下拉框的2种实现方式
2014/06/13 Javascript
Js使用WScript.Shell对象执行.bat文件和cmd命令
2014/12/18 Javascript
详细解密jsonp跨域请求
2015/04/15 Javascript
jQuery超简单选项卡完整实例
2015/09/26 Javascript
解决Vue使用swiper动态加载数据,动态轮播数据显示白屏的问题
2018/09/27 Javascript
Jquery遍历筛选数组的几种方法和遍历解析json对象,Map()方法详解以及数组中查询某值是否存在
2019/01/18 jQuery
详解如何使用router-link对象方式传递参数?
2019/05/02 Javascript
[06:42]DOTA2每周TOP10 精彩击杀集锦vol.1
2014/06/25 DOTA
[01:05:00]2018国际邀请赛 表演赛 Pain vs OpenAI
2018/08/24 DOTA
python实现360皮肤按钮控件示例
2014/02/21 Python
python+matplotlib实现动态绘制图片实例代码(交互式绘图)
2018/01/20 Python
python web.py开发httpserver解决跨域问题实例解析
2018/02/12 Python
解决Django删除migrations文件夹中的文件后出现的异常问题
2019/08/31 Python
Python存储读取HDF5文件代码解析
2020/11/25 Python
大学生个人求职信
2014/06/02 职场文书
2014年干部作风建设总结
2014/10/23 职场文书
敲诈同学钱财检讨书范文
2014/11/18 职场文书
2014年控辍保学工作总结
2014/12/08 职场文书
卫生院艾滋病宣传活动总结
2015/05/09 职场文书
离婚协议书范本(2016最新版)
2016/03/18 职场文书
蔬果开业典礼发言稿应该怎么写?
2019/09/03 职场文书
导游词之京东大峡谷旅游区
2019/10/29 职场文书
MySQL令人咋舌的隐式转换
2021/04/05 MySQL
python随机打印成绩排名表
2021/06/23 Python
python编程简单几行代码实现视频转换Gif示例
2021/10/05 Python
mysql如何查询连续记录
2022/05/11 MySQL