原则,以datetime为中心,起点或中转,转化为目标对象,涵盖了大多数业务场景中需要的日期转换处理
步骤:
1. 掌握几种对象及其关系
2. 了解每类对象的基本操作方法
3. 通过转化关系转化
涉及对象
1. datetime
>>> import datetime
>>> Now = datetime.datetime.Now()
>>> Now
datetime.datetime(2015,1,12,23,9,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
5. date
datetime基本操作
1. 获取当前datetime
2. 获取当天date
>>> datetime.date.today()
datetime.date(2015,12)
3. 获取明天/前N天
明天
三天前
>>> datetime.datetime.Now()
datetime.datetime(2015,38,55,492226)
>>> datetime.datetime.Now() - datetime.timedelta(days=3)
datetime.datetime(2015,57,59363)
4. 获取当天开始和结束时间(00:00:00 23:59:59)
>>> datetime.datetime.combine(datetime.date.today(),datetime.time.min)
datetime.datetime(2015,0)
>>> datetime.datetime.combine(datetime.date.today(),datetime.time.max)
datetime.datetime(2015,59,999999)
5. 获取两个datetime的时间差
6. 获取本周/本月/上月最后一天
本周
>>> today = datetime.date.today()
>>> today
datetime.date(2015,12)
>>> sunday = today + datetime.timedelta(6 - today.weekday())
>>> sunday
datetime.date(2015,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,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
string -> datetime
>>> import datetime
>>> datetime.datetime.strptime("2014-12-31 18:20:10","%Y-%m-%d %H:%M:%s")
datetime.datetime(2014,31,18,20,10)
datetime <=> timetuple
datetime -> timetuple
>>> import datetime
>>> datetime.datetime.Now().timetuple()
time.struct_time(tm_year=2015,tm_min=17,tm_sec=59,tm_isdst=-1)
timetuple -> datetime
timetuple => timestamp => datetime [看后面datetime<=>timestamp]
datetime <=> date
datetime -> date
date -> datetime
>>> datetime.date.today()
datetime.date(2015,12)
>>> today = datetime.date.today()
>>> datetime.datetime.combine(today,datetime.time())
datetime.datetime(2015,0)
>>> datetime.datetime.combine(today,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,43,23)
您可能感兴趣的文章:
- python操作日期和时间的方法
- python中日期和时间格式化输出的方法小结
- python中关于时间和日期函数的常用计算总结(time和datatime)
- Python之日期与时间处理模块(date和datetime)
- python获取当前日期和时间的方法
- python中关于日期时间处理的问答集锦
- 在Python的Flask框架中使用日期和时间的教程
- 在Python中操作日期和时间之gmtime()方法的使用
- 在Python操作时间和日期之asctime()方法的使用
- Python常用的日期时间处理方法示例
- 在Python中处理日期和时间的基本知识点整理汇总
- Python中的日期时间处理详解
- Python SQLite3数据库日期与时间常见函数用法分析
- Python中基本的日期时间处理的学习教程
- Python pandas常用函数详解
- python中pandas.DataFrame排除特定行方法示例
- python中pandas.DataFrame的简单操作方法(创建、索引、增添与删除)
- python中pandas.DataFrame对行与列求和及添加新行与列示例
- Python科学计算之Pandas详解
- python时间日期函数与利用pandas进行时间序列处理详解
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。