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使用心得之获得github代码库列表
Jun 25 Python
基于Python实现的百度贴吧网络爬虫实例
Apr 17 Python
Python语言描述连续子数组的最大和
Jan 04 Python
pandas实现选取特定索引的行
Apr 20 Python
Python pyinotify模块实现对文档的实时监控功能方法
Oct 13 Python
python分块读取大数据,避免内存不足的方法
Dec 10 Python
python实现支付宝转账接口
May 07 Python
python生成随机红包的实例写法
Sep 02 Python
基于python实现模拟数据结构模型
Jun 12 Python
Python字典取键、值对的方法步骤
Sep 30 Python
Python descriptor(描述符)的实现
Nov 15 Python
scrapy头部修改的方法详解
Dec 06 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
用文本文件实现的动态实时发布新闻的程序
2006/10/09 PHP
随时给自己贴的图片加文字的php水印
2007/03/16 PHP
PHP保存session到memcache服务器的方法
2016/01/19 PHP
PHP使用Mysqli类库实现完美分页效果的方法
2016/04/07 PHP
ThinkPHP框架搭建及常见问题(XAMPP安装失败、Apache/MySQL启动失败)
2016/04/15 PHP
THINKPHP截取中文字符串函数实例代码
2017/03/20 PHP
ThinkPHP开发--使用七牛云储存
2017/09/14 PHP
基于Jquery的温度计动画效果
2010/06/18 Javascript
JS判断对象是否存在的10种方法总结
2013/12/23 Javascript
jQuery中live()方法用法实例
2015/01/19 Javascript
js实现文本框宽度自适应文本宽度的方法
2015/08/13 Javascript
纯JavaScript 实现flappy bird小游戏实例代码
2016/09/27 Javascript
vue router 跳转后回到顶部的实例
2018/08/31 Javascript
基于AngularJs select绑定数字类型的问题
2018/10/08 Javascript
傻瓜式解读koa中间件处理模块koa-compose的使用
2018/10/30 Javascript
Vue实现点击显示不同图片的效果
2019/08/10 Javascript
jQuery实现鼠标滑动切换图片
2020/05/27 jQuery
简单了解Vue computed属性及watch区别
2020/07/10 Javascript
Python使用MD5加密字符串示例
2014/08/22 Python
Python实现图片转字符画的示例代码
2017/08/21 Python
Kali Linux安装ipython2 和 ipython3的方法
2019/07/11 Python
python实现小世界网络生成
2019/11/21 Python
Python flask框架端口失效解决方案
2020/06/04 Python
在python中使用pyspark读写Hive数据操作
2020/06/06 Python
python属于解释语言吗
2020/06/11 Python
军用级手机壳,专为冒险而建:Zizo Wireless
2019/08/07 全球购物
商务英语专业自荐信
2013/10/14 职场文书
护士自荐信范文
2013/12/15 职场文书
国家奖学金获奖感言
2014/08/16 职场文书
2014年大学生职业规划书:未来不是梦,只要勇敢冲!
2014/09/22 职场文书
美容院合作经营协议书
2014/10/10 职场文书
趣味运动会标语口号
2015/12/26 职场文书
2016年中学端午节主题活动总结
2016/04/01 职场文书
写好求职信的技巧解密
2019/05/14 职场文书
大学生奶茶店创业计划书
2019/06/25 职场文书
如何解决flex文本溢出问题小结
2022/07/15 HTML / CSS