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保存MongoDB上的文件到本地的方法
Mar 16 Python
Python 中导入csv数据的三种方法
Nov 01 Python
Python把对应格式的csv文件转换成字典类型存储脚本的方法
Feb 12 Python
django 信号调度机制详解
Jul 19 Python
python tkinter基本属性详解
Sep 16 Python
Numpy将二维数组添加到空数组的实现
Dec 05 Python
django框架F&amp;Q 聚合与分组操作示例
Dec 12 Python
Python标准库itertools的使用方法
Jan 17 Python
Python正则表达式学习小例子
Mar 03 Python
python标准库OS模块函数列表与实例全解
Mar 10 Python
Python多线程 Queue 模块常见用法
Jul 04 Python
Python 中 Shutil 模块详情
Nov 11 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使用者状态管理功能的应用
2006/10/09 PHP
php面向对象全攻略 (三)特殊的引用“$this”的使用
2009/09/30 PHP
php实现的遍历文件夹下所有文件,编辑删除
2010/01/05 PHP
php实现memcache缓存示例讲解
2013/12/04 PHP
php setcookie函数的参数说明及其用法
2014/04/20 PHP
Linux php 中文乱码的快速解决方法
2016/05/13 PHP
PHP实现防盗链的方法分析
2017/07/25 PHP
Laravel框架路由和控制器的绑定操作方法
2018/06/12 PHP
JavaScript 数组详解
2013/10/10 Javascript
js onload处理html页面加载之后的事件
2013/10/30 Javascript
node.js开发中使用Node Supervisor实现监测文件修改并自动重启应用
2014/11/04 Javascript
jquery 设置style:display的方法
2015/01/29 Javascript
使用DNode实现php和nodejs之间通信的简单实例
2015/07/06 NodeJs
JQuery和PHP结合实现动态进度条上传显示
2016/11/23 Javascript
实例讲解JS中pop使用方法
2019/01/27 Javascript
详解小程序循环require之坑
2019/03/08 Javascript
JS实现多选框的操作
2020/06/24 Javascript
python实现数独算法实例
2015/06/09 Python
python中pygame针对游戏窗口的显示方法实例分析(附源码)
2015/11/11 Python
用pickle存储Python的原生对象方法
2017/04/28 Python
梯度下降法介绍及利用Python实现的方法示例
2017/07/12 Python
python实现连续图文识别
2018/12/18 Python
Ubuntu16.04安装python3.6.5步骤详解
2020/01/10 Python
如何使用repr调试python程序
2020/02/28 Python
Python列表倒序输出及其效率详解
2020/03/04 Python
解决keras GAN训练是loss不发生变化,accuracy一直为0.5的问题
2020/07/02 Python
adidas旗下高尔夫装备供应商:TaylorMade Golf(泰勒梅高尔夫)
2016/08/28 全球购物
加热夹克:RAVEAN
2018/10/19 全球购物
护士自我鉴定
2013/10/23 职场文书
社区网格化管理实施方案
2014/03/21 职场文书
校本教研活动总结
2014/07/01 职场文书
教师一帮一活动总结
2014/07/08 职场文书
女生抽烟检讨书
2014/10/05 职场文书
社区敬老月活动总结
2015/05/07 职场文书
详解Redis主从复制实践
2021/05/19 Redis
react中useState使用:如何实现在当前表格直接更改数据
2022/08/05 Javascript