国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Python使用一行代碼獲取上個月是幾月

2020-02-15 22:52:34
字體:
來源:轉載
供稿:網友

本文介紹的關于Python時間日期處理,日期時間處理在實際應用場景中無處不在,所以這也成了編程語言中必不可少的模塊,Python 也不例外。但是,你知道在Python中有多少個相關的模塊嗎?datetime、time、calendar、 dateutil、 pytz 等等。 你知道有多少種數據類型嗎?date、time、datetime、tzinfo、timedelta 等等。

有天我遇到這樣的需求,想獲取當前月的前一個月是幾月,假設本月是2018年1月,那么上個月就是2017年12月,大約要經過這么幾個步驟

>>> import datetime # 1. 獲取「今天」 >>> today = datetime.date.today() # 2. 獲取當前月的第一天 >>> first = today.replace(day=1) # 3. 減一天,得到上個月的最后一天 >>> last_month = first - datetime.timedelta(days=1) # 4. 格式化成指定形式 >>> print(last_month.strftime("%Y%m")) 201807 >>>

這是有多麻煩? 麻煩得你懷疑這是 Python 代碼? 可能有人會說,用 datetime.replace 方法將 month-1 就好了,咋看起來沒問題,實際上這是有 bug 的,month 的范圍只能是 1-12

>>> d.replace(month=d.month-1)datetime.datetime(2018, 7, 24, 11, 29, 28, 929830)month-11 就報錯了>>> d.replace(month=d.month-11)ValueError: month must be in 1..12

你還知道日期時間、時間戳、字符串之間的互相轉換的那些 API 方法嗎?是不是每次處理時間相關的操作時,總要去官方文檔翻看一遍才能動手。你可以看看 time 模塊和 datetime 模塊中各種類型之間的互相轉換,看著這些箭頭是不是有密集恐懼癥?

不管怎樣,你終究還是要熟練這些模塊和API操作的,記不住沒關系,至少你都要手動敲幾遍,下次遇到時要能做到翻看文檔能快速定位到某個類某個方法是做什么用、怎么用。

但今天我要強烈安利給你的這個時間日期庫:Arrow。它的靈感來自于 requests 庫。將所有繁雜的東西全部隱藏于身后,留給你的是 for humans 接口。充分詮釋了 keep it simple and stupid 這句話的含義。

這篇文章帶你初步了解并掌握 Arrow 的使用方式。

安裝

$ pip install arrow

使用

>>> a = arrow.now() # 當前本地時間>>> a<Arrow [2018-08-24T07:09:03.468562+08:00]>>>> arrow.utcnow() # 當前utc時間<Arrow [2018-08-23T23:11:50.147585+00:00]>

你可以認為 Arrow 對象是一個增強版的 datetime 對象。

通過 Arrow 對象你可以獲取 datetime 對象

>>> t = a.datetime>>> type(t)<class 'datetime.datetime'>>>> tdatetime.datetime(2018, 8, 24, 7, 17, 14, 884750, tzinfo=tzlocal())            
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 旬阳县| 吴忠市| 增城市| 鹤山市| 盐亭县| 定远县| 九江市| 佛山市| 陇南市| 颍上县| 吉林省| 宜州市| 石泉县| 元阳县| 高尔夫| 理塘县| 吉木萨尔县| 隆安县| 化州市| 扎赉特旗| 高青县| 崇明县| 安国市| 尉氏县| 泊头市| 云阳县| 崇文区| 泗阳县| 湖口县| 兖州市| 本溪| 龙海市| 柯坪县| 正阳县| 易门县| 崇州市| 玉屏| 辽宁省| 黔江区| 西青区| 宁远县|