Python实用日期时间处理方法汇总
原则,以datetime为中心,起点或中转,转化为目标对象,涵盖了大多数业务场景中需要的日期转换处理 步骤: 1. 掌握几种对象及其关系 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 复制代码 代码如下: >>> 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,12) datetime基本操作 1. 获取当前datetime 复制代码 代码如下: >>> import datetime >>> datetime.datetime.now() datetime.datetime(2015,26,24,475680) 2. 获取当天date 复制代码 代码如下: >>> datetime.date.today() datetime.date(2015,12) 3. 获取明天/前N天 明天 复制代码 代码如下: >>> datetime.date.today() + datetime.timedelta(days=1) datetime.date(2015,13) 三天前 复制代码 代码如下: >>> 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的时间差 复制代码 代码如下: >>> (datetime.datetime(2015,13,0) - datetime.datetime.now()).total_seconds() 44747.768075 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 复制代码 代码如下: >>> 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,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 复制代码 代码如下: >>> import datetime >>> datetime.datetime.now().date() datetime.date(2015,12) 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) 您可能感兴趣的文章:
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |