国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

python工具模塊介紹-time 時間訪問和轉(zhuǎn)換

這篇具有很好參考價值的文章主要介紹了python工具模塊介紹-time 時間訪問和轉(zhuǎn)換。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

快速入門

In [1]: import time

# 獲取當前時間
In [25]: time.strftime("%Y-%m-%d_%H-%M-%S", time.localtime()) 
Out[25]: '2018-06-17_20-05-36'
# 停頓0.5秒
In [26]: time.sleep(0.5)

簡介

功能:時間訪問和轉(zhuǎn)換。

相關(guān)模塊:

datetime 標準模塊。
calendar 標準模塊。

下面介紹一些術(shù)語和約定:

epoch是時間開始點。對于Unix ,時代是1970年1月1日0點。通過time.gmtime(0)可以查看時間的起點:

In [1]: import time

In [2]: time.gmtime(0)
Out[2]: time.struct_time(tm_year=1970, tm_mon=1, tm_mday=1, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=3, tm_yday=1, tm_isdst=0)

In [3]:  time.gmtime(time.time() + 786041553) # 32位會報錯
Out[3]: time.struct_time(tm_year=2043, tm_mon=5, tm_mday=8, tm_hour=6, tm_min=26, tm_sec=50, tm_wday=4, tm_yday=128, tm_isdst=0)

對于32位的linux系統(tǒng),時間只能處理到2038年。現(xiàn)在新發(fā)布的主流已經(jīng)全部是64位版本。

UTC是協(xié)調(diào)世界時(前身為格林威治標準時間或GMT)。

DST為夏令時,通常是根據(jù)當?shù)胤稍谝荒陜?nèi)的部分時間進行一小時的調(diào)整。 C庫包含有當?shù)匾?guī)則的表。

實時函數(shù)的精度可能比建議的要低。例如在大多數(shù)Unix系統(tǒng)中,時鐘“滴答”只有50或100次每秒。

不過time()和sleep()比Unix的更好:時間為浮點數(shù),time()的返回確保最精確(盡量使用Unix的函數(shù)gettimeofday()) ,sleep()接受的時間為非零分數(shù)(盡量用select()實現(xiàn)) 。

gmtime(), localtime()和strptime()的返回是包含9個整數(shù)的序列,可以作為asctime(), mktime() and strftime()的輸入,每個域都有自己的屬性,實際上是一個結(jié)構(gòu)體struct_time,參見上面的例子。

時間轉(zhuǎn)換:gmtime()把浮點時間轉(zhuǎn)為UTC的struct_time,反之calendar.timegm();localtime()把浮點時間轉(zhuǎn)為local的struct_time,反之mktime()。實際上calendar.timegm()和mktime()是等效的,不過前者返回整數(shù),后者返回浮點數(shù)。

時間生成與轉(zhuǎn)換

生成epoch的浮點數(shù),注意不同的系統(tǒng)精度不同,linux一般是小數(shù)點后面7為,windows一般是小數(shù)點后3位。Time函數(shù)是沒有參數(shù)的??梢灾苯訉Ψ祷氐母↑c數(shù)進行計算。
gmtime([secs])把浮點時間轉(zhuǎn)為UTC的struct_time,如果無輸入?yún)?shù)為空會調(diào)用time()讀取當前時間。
gmtime顯示的是世界協(xié)調(diào)時間, localtime([secs])可以顯示本地時間。
注意夏時制要設(shè)置dst。asctime([t])顯示時間為可讀性好的格式,它把gmtime(), localtime()和strptime()的返回的struct_time類型轉(zhuǎn)換為可讀性較好的格式。如果輸入?yún)?shù)為空則調(diào)用localtime()的返回結(jié)果。它和c函數(shù)不同的地方是末尾不會添加換行。asctime不會使用Locale信息。

ctime([secs])在asctime上更進一步,轉(zhuǎn)換浮點數(shù)為可讀性較好的格式,相當于asctime(localtime(secs)), 這個功能很常用。ctime不會使用Locale信息。

In [1]: import time

In [2]: time.gmtime(0)
Out[2]: time.struct_time(tm_year=1970, tm_mon=1, tm_mday=1, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=3, tm_yday=1, tm_isdst=0)

In [3]:  time.gmtime(time.time() + 786041553)
Out[3]: time.struct_time(tm_year=2043, tm_mon=5, tm_mday=8, tm_hour=6, tm_min=26, tm_sec=50, tm_wday=4, tm_yday=128, tm_isdst=0)

In [4]: time.time()
Out[4]: 1528637996.277831

In [5]: time.gmtime()
Out[5]: time.struct_time(tm_year=2018, tm_mon=6, tm_mday=10, tm_hour=13, tm_min=42, tm_sec=47, tm_wday=6, tm_yday=161, tm_isdst=0)

In [6]: time.localtime()
Out[6]: time.struct_time(tm_year=2018, tm_mon=6, tm_mday=10, tm_hour=21, tm_min=43, tm_sec=54, tm_wday=6, tm_yday=161, tm_isdst=0)

In [7]: time.asctime()
Out[7]: 'Sun Jun 10 22:10:14 2018'

In [8]: time.ctime()
Out[8]: 'Sun Jun 10 22:12:25 2018'

Sleep

sleep(secs)暫停執(zhí)行指定秒數(shù)。參數(shù)可以是整數(shù)或浮點數(shù)。實際的中止時間可能小于請求時間,因為例行的信號捕捉可能終止sleep。此外中止時間可能長于請求時間,因為因為系統(tǒng)調(diào)度也是需要時間的。

In [36]: time.sleep(3)

處理器時間

clock()在Unix上,返回當前的處理器時間,為以秒表示的浮點數(shù)。精度決于同名的C函數(shù),通常用于基準Python或定時的算法。我們書寫一個不耗cpu和耗cpu的腳本對比:

import time

template = '{} - {:0.2f} - {:0.2f}'

print(template.format(
    time.ctime(), time.time(), time.clock())
)

for i in range(3, 0, -1):
    print('Sleeping', i)
    time.sleep(i)
    print(template.format(
        time.ctime(), time.time(), time.clock())
    )

執(zhí)行結(jié)果:

$ python3 time_clock_sleep.py 
Mon Jun 18 01:27:52 2018 - 1529256472.83 - 0.05
Sleeping 3
Mon Jun 18 01:27:55 2018 - 1529256475.83 - 0.05
Sleeping 2
Mon Jun 18 01:27:57 2018 - 1529256477.83 - 0.05
Sleeping 1
Mon Jun 18 01:27:58 2018 - 1529256478.83 - 0.05

import hashlib
import time

# Data to use to calculate md5 checksums
data = open(__file__, 'rb').read()

for i in range(5):
    h = hashlib.sha1()
    print(time.ctime(), ': {:0.3f} {:0.3f}'.format(
        time.time(), time.clock()))
    for i in range(300000):
        h.update(data)
    cksum = h.digest()

執(zhí)行結(jié)果:

$ python3 time_clock.py 
Mon Jun 18 01:31:35 2018 : 1529256695.695 0.048
Mon Jun 18 01:31:36 2018 : 1529256696.166 0.519
Mon Jun 18 01:31:36 2018 : 1529256696.635 0.987
Mon Jun 18 01:31:37 2018 : 1529256697.110 1.461
Mon Jun 18 01:31:37 2018 : 1529256697.587 1.936

struct_time類

struct_time是的命名元組,結(jié)構(gòu)如下:

| 索引(Index) | 屬性(Attribute) | 值(Values) |
| 0 | tm_year(年 | 比如2013 |
| 1 | tm_mon(月) | 1 - 12 |
| 2 | tm_mday(日) | 1 - 31 |
| 3 | tm_hour(時) | 0 - 23 |
| 4 | tm_min(分) | 0 - 59 |
| 5 | tm_sec(秒) | 0 - 61 |
| 6 | tm_wday(weekday | 0 - 6(0表示周日 |
| 7 | tm_yday(一年中的第幾天) | 1 - 366 |
| 8 | tm_isdst(是否是夏令時) | 默認為-1 |

import timedef show_struct(s):
    print '  tm_year :', s.tm_year    print '  tm_mon  :', s.tm_mon    print '  tm_mday :', s.tm_mday    print '  tm_hour :', s.tm_hour    print '  tm_min  :', s.tm_min    print '  tm_sec  :', s.tm_sec    print '  tm_wday :', s.tm_wday    print '  tm_yday :', s.tm_yday    print '  tm_isdst:', s.tm_isdstprint 'gmtime:'show_struct(time.gmtime())print '\nlocaltime:'show_struct(time.localtime())print '\nmktime:', time.mktime(time.localtime())

執(zhí)行結(jié)果:

$ python3 time_struct.py 
gmtime:
  tm_year : 2018
  tm_mon  : 6
  tm_mday : 17
  tm_hour : 17
  tm_min  : 32
  tm_sec  : 54
  tm_wday : 6
  tm_yday : 168
  tm_isdst: 0

localtime:
  tm_year : 2018
  tm_mon  : 6
  tm_mday : 18
  tm_hour : 1
  tm_min  : 32
  tm_sec  : 54
  tm_wday : 0
  tm_yday : 169
  tm_isdst: 0

mktime: 1529256774.0

參考資料

參考資料

  • python好書下載 https://github.com/china-testing/python_cn_resouce/blob/main/python_good_books.md
  • https://docs.python.org/3/library/time.html
  • https://pymotw.com/3/time/index.html
  • http://effbot.org/librarybook/time.htm
  • 代碼地址

時區(qū)

重置庫函數(shù)的時間轉(zhuǎn)換規(guī)則。實際上是修改環(huán)境變量TZ,python 2.3以后類linux支持該功能,這個功能相對不是那么常用。TZ環(huán)境變量的格式如下:

std offset [dst [offset [,start[/time], end[/time]]]]

STD和DST為時區(qū)縮寫。hh[:mm[:ss]],表示加上這個時間可以得到UTC時間。偏移量的形式為: HH [ : MM [ : SS] ],夏時制增加1小時。

starttime, endtime表示使用夏時制的區(qū)間。time和偏移類似,默認時間是02:00:00。比如:

In [1]: import os

In [2]: import time

In [3]: os.environ['TZ'] = 'EST+05EDT,M4.1.0,M10.5.0'

In [4]: time.tzset()

In [5]: time.strftime('%X %x %Z')
Out[5]: '13:38:26 06/17/18 EDT'

In [6]: os.environ['TZ'] = 'AEST-10AEDT-11,M10.5.0,M3.5.0'

In [7]: time.tzset()

In [8]: time.strftime('%X %x %Z')
Out[8]: '03:38:46 06/18/18 AEST'

在許多Unix系統(tǒng)(包括* BSD,Linux和Solaris,和Darwin),使用系統(tǒng)時區(qū)數(shù)據(jù)庫更方便。

In [9]: os.environ['TZ'] = 'US/Eastern'

In [10]:  time.tzset()

In [11]: time.tzname
Out[11]: ('EST', 'EDT')

In [12]:  os.environ['TZ'] = 'Egypt'

In [13]:  time.tzset()

In [14]: ('EET', 'EEST')
Out[14]: ('EET', 'EEST')

另一實例:

import time
import os
def show_zone_info():
    print '  TZ    :', os.environ.get('TZ', '(not set)')
    print '  tzname:', time.tzname    print '  Zone  : %d (%d)' % (time.timezone,
                                 (time.timezone / 3600))
    print '  DST   :', time.daylight    print '  Time  :', time.ctime()
    printprint 'Default :'show_zone_info()ZONES = [ 'GMT',
          'Europe/Amsterdam',
          ]for zone in ZONES:
    os.environ['TZ'] = zone
    time.tzset()
    print zone, ':'
    show_zone_info()

執(zhí)行結(jié)果:

$ python3 time_timezone.py 
Default :
  TZ    : (not set)
  tzname: ('CST', 'CST')
  Zone  : -28800 (-8.0)
  DST   : 0
  Time  : Mon Jun 18 01:40:39 2018

GMT :
  TZ    : GMT
  tzname: ('GMT', 'GMT')
  Zone  : 0 (0.0)
  DST   : 0
  Time  : Sun Jun 17 17:40:39 2018

Europe/Amsterdam :
  TZ    : Europe/Amsterdam
  tzname: ('CET', 'CEST')
  Zone  : -3600 (-1.0)
  DST   : 1
  Time  : Sun Jun 17 19:40:39 2018

格式化

time.strftime(format[, t]):把一個代表時間的元組或者struct_tim轉(zhuǎn)為格式化的時間字符串。如果t未指定,將調(diào)用time.localtime()的返回作為輸入。如果輸入中任何一個元素越界將報ValueError異常。格式化參數(shù)如下:

格式 含義 備注
%a 本地簡化星期名
%A 本地完整星期名
%b 本地簡化月份名
%B 本地完整月份名稱
%c 本地相應的日期和時間表示
%d 日期(01 - 31)
%H 小時(24小時制,00 - 23)
%I 小時(12小時制,01 - 12)
%j 天數(shù)(基于年)(001 - 366)
%m 月份(01 - 12)
%M 分鐘(00 - 59)
%p 顯示am或pm的標識
%S 秒(01 - 61)
%U 周數(shù)(基于年)(00 – 53周日是星期的開始。)第一個周日之前的所有天數(shù)都放在第0周。
%w 星期中的天數(shù)(0 - 6,0是星期天)
%W 和%U基本相同,以星期一為星期的開始。
%x 本地相應日期表示
%X 本地相應時間表示
%y 去掉世紀的年份(00 - 99)
%Y 完整的年份
%Z 時區(qū)的名字(如果不存在為空字符)
%% '%’字符

備注:

  • “%p”只有與“%I”配合使用才有效果。

  • 秒是0 - 61,而不是59,以處理閏秒和雙閏秒。

  • 當使用strptime()函數(shù)時,只有當在這年中的周數(shù)和天數(shù)被確定的時候%U和%W才會被計算。

比如:

In [15]: time.strftime("%a, %d %b %Y %H:%M:%S +0000", time.gmtime())
Out[15]: 'Sun, 17 Jun 2018 17:44:12 +0000'

下面方式在給文件名等添加時間戳比較有用:

In [17]: time.strftime("%Y-%m-%d_%H:%M:%S", time.gmtime())
Out[17]: '2018-06-17_17:46:18'

顯示格式可能因系統(tǒng)而又不同的差異。

time.strptime(string[, format]):把一個格式化時間字符串轉(zhuǎn)化為struct_time。實際上它和strftime()是逆操作,參數(shù)參見strftime。Format默認為"%a %b %d %H:%M:%S %Y",和ctime的返回格式一致,沒有提供的值會采用默認值(1900, 1, 1, 0, 0, 0, 0, 1, -1)。

In [19]: time.strptime("30 Nov 18", "%d %b %y")
    ...: 
Out[19]: time.struct_time(tm_year=2018, tm_mon=11, tm_mday=30, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=4, tm_yday=334, tm_isdst=-1)

其他

altzone屬性查看當前夏時制時間的偏移。daylight屬性查看是否使用了夏時制。timezone查看當前時區(qū)的偏移。Tzname返回本地時區(qū)和夏時制對應的時區(qū)。文章來源地址http://www.zghlxwxcb.cn/news/detail-423690.html

In [3]: time.altzone
Out[3]: -28800
In [4]: time.daylight
Out[4]: 0
In [5]: time.timezone
Out[5]: -28800
In [6]: time.tzname
Out[6]: ('CST', 'CST')

到了這里,關(guān)于python工具模塊介紹-time 時間訪問和轉(zhuǎn)換的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務器費用

相關(guān)文章

  • 20 Python的time模塊

    概述 ????????在上一節(jié),我們介紹了Python的math模塊,包括:math模塊中一些常用的屬性和函數(shù)。在這一節(jié),我們將介紹Python的time模塊。time模塊是用于處理時間數(shù)據(jù)的庫,它提供了各種功能來獲取、表達和轉(zhuǎn)換時間。該模塊主要包含的功能如下: ???????? 時間獲取 :可

    2024年02月08日
    瀏覽(10)
  • python time 獲取毫秒級時間戳

    1、time 獲取秒級時間戳,格式化顯示 結(jié)果: 2、datetime 獲取當前日期時間 結(jié)果: 3、日期時間之間的轉(zhuǎn)換 3.1、字符串轉(zhuǎn) time 3.2、字符串轉(zhuǎn) time 3.3、示例

    2024年02月16日
    瀏覽(21)
  • Python time時間格式化以及設(shè)置時區(qū)

    Python time時間格式化以及設(shè)置時區(qū)

    Python提供了多個內(nèi)置模塊用于操作日期時間,像calendar,time,datetime。time模塊我在之前的文章已經(jīng)有所介紹,它提供 的接口與C標準庫time.h基本一致。相比于time模塊,datetime模塊的接口則更直觀、更容易調(diào)用。今天就來講講datetime模塊。 datetime模塊定義了兩個常量:datetime.MI

    2024年02月08日
    瀏覽(27)
  • python中time方法,生成當前時間年月日時分秒

    在Python中,可以使用time模塊中的strftime()方法結(jié)合時間格式化字符串來生成當前的年月日時分秒。下面是一個詳細解釋的示例代碼: ?????????在以上代碼中,首先使用time.time()方法獲取當前的時間戳。然后,使用time.localtime()方法將時間戳轉(zhuǎn)換為本地時間的struct_time對象。

    2024年02月14日
    瀏覽(91)
  • 在線時間戳格式化轉(zhuǎn)換工具

    在線時間戳格式化轉(zhuǎn)換工具

    在線時間戳格式化轉(zhuǎn)換工具 本工具支持在時間和時間戳之間相互轉(zhuǎn)換,默認時間參考的是服務器時間 Unix時間戳(Unix timestamp),或稱Unix時間(Unix time)、POSIX時間(POSIXtime),是一種時間表示方式,定義為從格林威治時間1970年01月01日00時00分00秒(北京時間1970年01月01日08時00分00秒)起

    2024年02月15日
    瀏覽(21)
  • Flutter 學習 之 時間轉(zhuǎn)換工具類

    在 Flutter 應用程序開發(fā)中,處理時間戳是非常常見的需求。我們通常需要將時間戳轉(zhuǎn)換為人類可讀的日期時間格式。為了實現(xiàn)這一點,我們可以創(chuàng)建一個時間轉(zhuǎn)換工具類。 以下是一個簡單的時間轉(zhuǎn)換工具類的示例,它將 UNIX 時間戳轉(zhuǎn)換為人類可讀的日期時間格式: 這個類有

    2024年02月14日
    瀏覽(9)
  • Python可視化學習——使用JSON進行數(shù)據(jù)轉(zhuǎn)換、pyecharts模塊調(diào)用以及可視化案例的介紹(可視化案例數(shù)據(jù)暫無),柱狀圖及動態(tài)柱狀圖的構(gòu)建

    Python可視化學習——使用JSON進行數(shù)據(jù)轉(zhuǎn)換、pyecharts模塊調(diào)用以及可視化案例的介紹(可視化案例數(shù)據(jù)暫無),柱狀圖及動態(tài)柱狀圖的構(gòu)建

    可視化效果一:2020年印美日新冠累計確診人數(shù) 2020年是新冠疫情爆發(fā)的一年,隨著疫情的爆發(fā),國內(nèi)外確診人數(shù)成了大家關(guān)心的熱點,相信大家都有看過類似的疫情報告.本案例對印度美國日本三個國家確診人數(shù)的進行了可視化處理,形成了可視化的疫情確診人數(shù)報告. ?可視

    2024年02月01日
    瀏覽(98)
  • Python__模塊(TIME-進程/線程)__concurrent / multiprocessing

    進程或線程的使用。 線程是共享內(nèi)存空間。 進程是內(nèi)存獨立狀態(tài)。 同一個進程的線程之間可以直接交流。 兩個進程想通信,必須通過一個中間代理來實現(xiàn)。 使用多線程能充分利用 CPU 來提供程序的執(zhí)行效率。 每一個進程啟動時都會最先產(chǎn)生一個線程,即主線程,然后主線程

    2024年02月04日
    瀏覽(45)
  • Time-LLM:為時間序列預測重新編程LLM 探索Time-LLM的架構(gòu),并在Python中將其應用于預測項目

    Time-LLM:為時間序列預測重新編程LLM 探索Time-LLM的架構(gòu),并在Python中將其應用于預測項目

    參考資料:Time-LLM/ Reprogram an LLM for Time Series Forecasting.md 研究人員嘗試將自然語言處理(NLP)技術(shù)應用于時間序列領(lǐng)域并非首次。 例如,Transformer架構(gòu)在NLP領(lǐng)域是一個重要的里程碑,但其在時間序列預測方面的表現(xiàn)一直平平,直到PatchTST的提出。 正如您所知,大型語言模型(

    2024年04月25日
    瀏覽(30)
  • 【python】時間與時間戳互相轉(zhuǎn)換

    時間戳 : class ‘float’,1683876941.119018 時間格式: class ‘str’,“2023-05-12 15:35:41.119018” 時間戳 (timestamp):定義為從格林威治時間1970年01月01日08時00分00秒起至現(xiàn)在的總秒數(shù)。 以毫秒計時的時間戳一般有 13 位,可以將其除以 1000: 使用 datetime 庫,將時間戳轉(zhuǎn)換為時間: 也

    2024年02月13日
    瀏覽(22)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包