一個增強的、友好的時間處理庫:sandglass

jopen 9年前發布 | 10K 次閱讀 sandglass Python開發

sandglass(沙漏) 是一個增強的、友好的時間處理庫,目的是為了解放程序員的生產力。在python中有太多處理時間的庫,datetime/date/time/calendar等等。需要記的細節太多,選擇困難。而sandglass就是解決這個的青霉素。從各種麻煩的轉換中解脫出來。只需記住 Sandglass對象ben()tslice()cronwalk() 這幾個主要的api即可。

Features:

  • api簡潔,開箱即用
  • 增強接管datetime
  • 內置時間字符串解析器
  • 方便進行各種轉換
  • 靈活的構造函數
  • 方便的獲取各種時間信息
  • 支持偽造當前時間,方便調試
  • 一鍵生產時間序列
  • 支持解析crontab表達式

用法

在sandglass中,核心對象是 Sandglass對象

ben() 函數用來便捷獲取Sandglass對象.:

不帶參數默認是當前時間
>>>ben()#shortcut of Sandglass.now()
參數是時間戳
>>>ben(timestamp)
參數是時間字符串
>>>ben(timestr)
參數是datetime對象
>>>ben(datetime)
參數是Sandglass對象
>>>ben(Sandglass)
顯式指明格式
>>>ben('2013-01-01','%Y-%m-%d')
datetime-like的構造器
>>>ben(year=2013,month=2,day=8,hour=7)

也就是說,只要把能表達時間的東西塞給ben()就行了。值得一說的是ben(timestr)中通過一個詞法解析的東西,使得timestr可以很靈活。大體規則是,如果缺少年月日信息,則默認用當前時間的年月日;如果缺少時分秒信息,則默認是0:

>>>ben('2013,1,1') == ben('2013-01,01') == ben('2013 1 01') == ben('2013-01-01 00:00:00')
True
>>>ben('2013,1,1 19:23') == ben('2013-01-01 19:23:00')
True
>>>now = datetime.now()
>>>ben('19:23').year == now.year
True
>>>ben('19:23').month == now.month
True
>>>ben('19:23').day == now.day
True
>>> ben('19:23').hour,ben('19:23').minute,ben('19:23').second
(19,23,0)

項目主頁:http://www.baiduhome.net/lib/view/home/1419685078625

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!