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批量导出导入MySQL用户的方法
Nov 15 Python
Python中使用异常处理来判断运行的操作系统平台方法
Jan 22 Python
python将MongoDB里的ObjectId转换为时间戳的方法
Mar 13 Python
详解python中字典的循环遍历的两种方式
Feb 07 Python
python获取代码运行时间的实例代码
Jun 11 Python
python3.6实现学生信息管理系统
Feb 21 Python
Python使用pandas和xlsxwriter读写xlsx文件的方法示例
Apr 09 Python
解决django后台管理界面添加中文内容乱码问题
Nov 15 Python
创建Shapefile文件并写入数据的例子
Nov 26 Python
Python3如何在Windows和Linux上打包
Feb 25 Python
Pytest如何使用skip跳过执行测试
Aug 13 Python
详解Selenium-webdriver绕开反爬虫机制的4种方法
Oct 28 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下的权限算法的实现
2007/04/28 PHP
php绘图中显示不出图片的原因及解决
2014/03/05 PHP
PHP提示Cannot modify header information - headers already sent by解决方法
2014/09/22 PHP
php+ajax实现无刷新分页的方法
2014/11/04 PHP
PHP文件上传判断file是否己选择上传文件的方法
2014/11/10 PHP
PHP将数据导出Excel表中的实例(投机型)
2017/07/31 PHP
JavaScript 匿名函数(anonymous function)与闭包(closure)
2011/10/04 Javascript
用Mootools获得操作索引的两种方法分享
2011/12/12 Javascript
如何使用jquery控制CSS样式,并且取消Css样式(如背景色,有实例)
2013/07/09 Javascript
js通过更改按钮的显示样式实现按钮的滑动效果
2014/04/23 Javascript
jQuery使用after()方法在元素后面添加多项内容的方法
2015/03/26 Javascript
js判断主流浏览器类型和版本号的简单实现代码
2016/05/26 Javascript
JavaScript字符串对象(string)基本用法示例
2017/01/18 Javascript
JS实现带导航城市列表以及输入搜索功能
2018/01/04 Javascript
vue 实现的树形菜的实例代码
2018/03/19 Javascript
echarts实现折线图的拖拽效果
2019/12/19 Javascript
javascript实现滚动条效果
2020/03/24 Javascript
Vue实现Layui的集成方法步骤
2020/04/10 Javascript
python将每个单词按空格分开并保存到文件中
2018/03/19 Python
Python基于递归和非递归算法求两个数最大公约数、最小公倍数示例
2018/05/21 Python
python实现归并排序算法
2018/11/22 Python
Python 实现交换矩阵的行示例
2019/06/26 Python
python字典的遍历3种方法详解
2019/08/10 Python
python3用PyPDF2解析pdf文件,用正则匹配数据方式
2020/05/12 Python
Appium+Python实现简单的自动化登录测试的实现
2021/01/26 Python
super()与this()的区别
2016/01/17 面试题
远程研修随笔感言
2014/02/10 职场文书
计算机应届毕业生自荐信范文
2014/02/23 职场文书
给校长的一封建议书
2014/03/12 职场文书
银行竞聘演讲稿范文
2014/04/23 职场文书
2014年城市管理工作总结
2014/12/02 职场文书
九寨沟导游词
2015/02/02 职场文书
2015年电话客服工作总结
2015/05/18 职场文书
聚众斗殴罪辩护词
2015/05/21 职场文书
实习单位意见
2015/06/04 职场文书
描写九月优美句子(39条)
2019/09/11 职场文书