Python-基础-时间日期处理小结
Python-基礎-時間日期處理小結
datetime <=> string
datetime <=> timetuple
datetime <=> date
datetime <=> timestamp
1. 獲取當前datetime
2. 獲取當天date
3. 獲取明天/前N天
4. 獲取當天開始和結束時間(00:00:00 23:59:59)
5. 獲取兩個datetime的時間差
6. 獲取本周/本月/上月最后一天
1. datetime
2. timestamp
3. time tuple
4. string
5. date
涉及對象
datetime基本操作
關系轉換
關系轉換例子
好久沒寫文了, 繼續清理筆記, 都是一些小結之類的, 源碼分析以及在做系統中一些細節難點等, 后續逐步發
另外打個廣告,?甜品禮物, 坐標深圳, 有興趣的同學可以給我發郵件, 非python職位會轉到對應同事:)
??????_???????_???????_???_|?|?????|?|?????|?|?(_)__|?|?__?_|?|_?___|?|_?_?_?__?___???___/?_`?|/?_`?|?__/?_?\?__|?|?'_?`?_?\?/?_?\|?(_|?|?(_|?|?||??__/?|_|?|?|?|?|?|?|??__/\__,_|\__,_|\__\___|\__|_|_|?|_|?|_|\___|原則, 以datetime為中心, 起點或中轉, 轉化為目標對象, 涵蓋了大多數業務場景中需要的日期轉換處理
步驟:
1.?掌握幾種對象及其關系 2.?了解每類對象的基本操作方法 3.?通過轉化關系轉化涉及對象
1. datetime
>>>?import?datetime>>>?now?=?datetime.datetime.now()>>>?nowdatetime.datetime(2015,?1,?12,?23,?9,?12,?946118)>>>?type(now)<type?'datetime.datetime'>2. timestamp
>>>?import?time>>>?time.time()1421075455.5682433. 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.7680756. 獲取本周/本月/上月最后一天
本周
>>>?today?=?datetime.date.today()>>>?todaydatetime.date(2015,?1,?12)>>>?sunday?=?today?+?datetime.timedelta(6?-?today.weekday())>>>?sundaydatetime.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_daydatetime.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())>>>?timestamp1421077403.0timestamp -> datetime
>>>?datetime.datetime.fromtimestamp(1421077403.0)datetime.datetime(2015,?1,?12,?23,?43,?23)轉載于:https://blog.51cto.com/tfbaby/1902946
總結
以上是生活随笔為你收集整理的Python-基础-时间日期处理小结的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: AC日记——最大子段和 洛谷 P1115
- 下一篇: 升级Python后yum不可用的解决方案