小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

Python時(shí)間運(yùn)算的詳細(xì)機(jī)制初探討

 LibraryPKU 2017-11-20

專 欄


?
劉布丁,Python中文社區(qū)專欄作者,目前工作職位是Python后臺(tái)工程師,擅長Python系統(tǒng)監(jiān)控。codewars四級(jí)段位不斷刷題中。
博客地址:http:///archives/
?


本篇共2部分,上篇我們初步探討Python時(shí)間運(yùn)算的機(jī)制,下篇為一句話快速運(yùn)用Python的datetime進(jìn)行時(shí)間運(yùn)算的技巧。

Python時(shí)間運(yùn)算的詳細(xì)機(jī)制初探討

我們先來看一張圖:

  1. import time

導(dǎo)入時(shí)間模塊;

  1. In [5]: time.strptime('20161009','%Y%m%d')

  2. Out[5]: time.struct_time(tm_year=2016, tm_mon=10, tm_mday=9, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=6, tm_yday=283, tm_isdst=-1)

  • 通過time.strptime()將普通字符時(shí)間轉(zhuǎn)換為時(shí)間元祖,注意這兩者在轉(zhuǎn)換時(shí)需要指定字符時(shí)間的格式(%Y%m%d這里只用到了年月日);

  1. In [6]: time.mktime(time.strptime('20161009','%Y%m%d'))

  2. Out[6]: 1475942400.0

  • 通過time.mktime將上一步的時(shí)間元祖轉(zhuǎn)換為時(shí)間戳,也就是1970年0時(shí)0分0秒到20161009的0時(shí)0分0秒為止,過了多少秒;

  1. In [7]: time.localtime(1475942400.0)

  2. Out[7]: time.struct_time(tm_year=2016, tm_mon=10, tm_mday=9, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=6, tm_yday=283, tm_isdst=0)

  • 通過 time.localtime將時(shí)間戳轉(zhuǎn)換為時(shí)間元祖;

  1. In [13]: time.strftime('%Y%m%d',time.localtime(1475942400.0))

  2. Out[13]: '20161009'

  • 通過time.strftime將時(shí)間元祖復(fù)原為普通字符時(shí)間,同樣注意需要指定字符時(shí)間的格式。

附:字符時(shí)間常用格式

  1. %Y  Year with century as a decimal number.

  2. %m  Month as a decimal number [01,12].

  3. %d  Day of the month as a decimal number [01,31].

  4. %H  Hour (24-hour clock) as a decimal number [00,23].

  5. %M  Minute as a decimal number [00,59].

  6. %S  Second as a decimal number [00,61].

  7. %z  Time zone offset from UTC.

  8. %a  Locale's abbreviated weekday name.

  9. %A  Locale's full weekday name.

  10. %b  Locale's abbreviated month name.

  11. %B  Locale's full month name.

  12. %c  Locale's appropriate date and time representation.

  13. %I  Hour (12-hour clock) as a decimal number [01,12].

  14. %p  Locale's equivalent of either AM or PM.

一句話快速進(jìn)行python時(shí)間運(yùn)算的技巧

1、python快速求值當(dāng)前時(shí)間

當(dāng)前的天數(shù)、當(dāng)前的時(shí)間


  1. In [1]: from datetime import datetime, timedelta, date


  2. In [2]: (datetime.now()).strftime('%Y%m%d')

  3. Out[2]: '20161009'


  4. In [3]: (datetime.now()).strftime('%Y/%m/%d %H:%M:%S')

  5. Out[3]: '2016/10/09 16:57:12'

同上,當(dāng)前的周數(shù)、月份、上下午等都可以通過后面的格式化字符求出。例如,

%a代表英文周幾,%b代表月份,%p代表AM/PM等,更多的參考下圖:

2 、python快速時(shí)間運(yùn)算

python周數(shù)運(yùn)算、天數(shù)運(yùn)算、小時(shí)運(yùn)算、秒數(shù)運(yùn)算、毫秒運(yùn)算、微秒運(yùn)算

  1. In [5]: (datetime.now()-timedelta(days=1)).strftime('%Y%m%d')  # 1天前,N天前

  2. Out[5]: '20161008'


  3. In [6]: (datetime.now()-timedelta(hours=1)).strftime('%Y/%m/%d %H:%M:%S')  # 1小時(shí)前,n小時(shí)前

  4. Out[6]: '2016/10/09 16:00:02'

同上,weeks表示周為單位,second表示秒為單位,milliseconds表示毫秒為單位, microseconds微秒為單位。

其實(shí)就是給 timedelta() 這個(gè)類傳入的參數(shù)變一下就可以了:

可傳入的參數(shù)有 timedelta(weeks, days, hours, second, milliseconds, microseconds) 每個(gè)參數(shù)都是可選參數(shù),默認(rèn)值為0,參數(shù)值必須是這些(整數(shù),浮點(diǎn)數(shù),正數(shù),負(fù)數(shù))。


優(yōu)秀人才不缺工作機(jī)會(huì),只缺適合自己的好機(jī)會(huì)。但是他們往往沒有精力從海量機(jī)會(huì)中找到最適合的那個(gè)。

100offer 會(huì)對(duì)平臺(tái)上的人才和企業(yè)進(jìn)行嚴(yán)格篩選,讓「最好的人才」和「最好的公司」相遇。
掃描下方二維碼,注冊(cè) 100offer,談?wù)勀銓?duì)下一份工作的期待。一周內(nèi),收到 5-10 個(gè)滿足你要求的好機(jī)會(huì)!


§§
Python中文社區(qū)
www.python-cn.com

致力于成為

國內(nèi)最好的Python社區(qū)


Python中文社區(qū)俱樂部QQ群:274631467

專欄作者申請(qǐng)郵箱

pythonpost@163.com

— Life is short,we use Python —




    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多