1. 程式人生 > >time datetime 總結

time datetime 總結

初始化 utc saving con minute 運行時 分鐘 fse tip

Python time altzone()方法


描述

Python time altzone() 函數返回格林威治西部的夏令時地區的偏移秒數。如果該地區在格林威治東部會返回負值(如西歐,包括英國)。對夏令時啟用地區才能使用。

返回值

返回格林威治西部的夏令時地區的偏移秒數。如果該地區在格林威治東部會返回負值(如西歐,包括英國)。

實例

以下實例展示了 altzone()函數的使用方法:

#!/usr/bin/python
import time

print "time.altzone %d " % time.altzone

以上實例輸出結果為:

time.altzone() 25200


Python time asctime()方法


描述

Python time asctime() 函數接受時間元組並返回一個可讀的形式為"Tue Dec 11 18:07:14 2008"(2008年12月11日 周二18時07分14秒)的24個字符的字符串。

參數

  • t -- 9個元素的元組或者通過函數 gmtime() 或 localtime() 返回的時間值。

返回值

返回一個可讀的形式為"Tue Dec 11 18:07:14 2008"(2008年12月11日 周二18時07分14秒)的24個字符的字符串。

實例

以下實例展示了 asctime()函數的使用方法:

#!/usr/bin/python
import time

t = time.localtime()
print "time.asctime(t): %s " % time.asctime(t)

以上實例輸出結果為:

time.asctime(t): Tue Feb 17 09:42:58 2009

Python time clock()方法


描述

Python time clock() 函數以浮點數計算的秒數返回當前的CPU時間。用來衡量不同程序的耗時,比time.time()更有用。

這個需要註意,在不同的系統上含義不同。在UNIX系統上,它返回的是"進程時間",它是用秒表示的浮點數(時間戳)。而在WINDOWS中,第一次調用,返回的是進程運行的實際時間。而第二次之後的調用是自第一次調用以後到現在的運行時間。(實際上是以WIN32上QueryPerformanceCounter()為基礎,它比毫秒表示更為精確)

返回值

該函數有兩個功能,

在第一次調用的時候,返回的是程序運行的實際時間;

以第二次之後的調用,返回的是自第一次調用後,到這次調用的時間間隔

在win32系統下,這個函數返回的是真實時間(wall time),而在Unix/Linux下返回的是CPU時間。

實例

以下實例展示了 clock()函數的使用方法:

#!/usr/bin/python
import time

def procedure():
    time.sleep(2.5)

# measure process time
t0 = time.clock()
procedure()
print time.clock() - t0, "seconds process time"

# measure wall time
t0 = time.time()
procedure()
print time.time() - t0, "seconds wall time"

以上實例輸出結果為:

0.0 seconds process time
2.50023603439 seconds wall time

Python time ctime()方法


描述

Python time ctime() 函數把一個時間戳(按秒計算的浮點數)轉化為time.asctime()的形式。 如果參數未給或者為None的時候,將會默認time.time()為參數。它的作用相當於 asctime(localtime(secs))。

參數

  • sec -- 要轉換為字符串時間的秒數。

返回值

該函數沒有任何返回值。

實例

以下實例展示了 ctime() 函數的使用方法:

#!/usr/bin/python
import time

print "time.ctime() : %s" % time.ctime()

以上實例輸出結果為:

time.ctime() : Tue Feb 17 10:00:18 2013

Python time gmtime()方法


描述

Python time gmtime() 函數將一個時間戳轉換為UTC時區(0時區)的struct_time,可選的參數sec表示從1970-1-1以來的秒數。其默認值為time.time(),函數返回time.struct_time類型的對象。(struct_time是在time模塊中定義的表示時間的對象)。

語法

gmtime()方法語法:

time.gmtime([ sec ])

參數

  • sec -- 轉換為time.struct_time類型的對象的秒數。

返回值

該函數沒有任何返回值。

實例

以下實例展示了 gmtime() 函數的使用方法:

#!/usr/bin/python
import time

print "time.gmtime() : %s" % time.gmtime()

以上實例輸出結果為:

time.gmtime() : time.struct_time(tm_year=2016, tm_mon=4, tm_mday=7, tm_hour=2, tm_min=55, tm_sec=45, tm_wday=3, tm_yday=98, tm_isdst=0)

Python time localtime()方法


描述

Python time localtime() 函數類似gmtime(),作用是格式化時間戳為本地的時間。 如果sec參數未輸入,則以當前時間為轉換標準。 DST (Daylight Savings Time) flag (-1, 0 or 1) 是否是夏令時。

語法

localtime()方法語法:

time.localtime([ sec ])

參數

  • sec -- 轉換為time.struct_time類型的對象的秒數。

返回值

該函數沒有任何返回值。

實例

以下實例展示了 localtime() 函數的使用方法:

實例

#!/usr/bin/python import time print "time.localtime() : %s" % time.localtime()

以上實例輸出結果為:

time.localtime() : time.struct_time(tm_year=2016, tm_mon=11, tm_mday=27, tm_hour=10, tm_min=26, tm_sec=5, tm_wday=6, tm_yday=332, tm_isdst=0)

Python time mktime()方法


描述

Python time mktime() 函數執行與gmtime(), localtime()相反的操作,它接收struct_time對象作為參數,返回用秒數來表示時間的浮點數。

如果輸入的值不是一個合法的時間,將觸發 OverflowError 或 ValueError。

語法

mktime()方法語法:

time.mktime(t)

參數

  • t -- 結構化的時間或者完整的9位元組元素。

返回值

返回用秒數來表示時間的浮點數。

實例

以下實例展示了 mktime() 函數的使用方法:

#!/usr/bin/python
import time

t = (2009, 2, 17, 17, 3, 38, 1, 48, 0)
secs = time.mktime( t )
print "time.mktime(t) : %f" %  secs
print "asctime(localtime(secs)): %s" % time.asctime(time.localtime(secs))

以上實例輸出結果為:

time.mktime(t) : 1234915418.000000
asctime(localtime(secs)): Tue Feb 17 17:03:38 2009

Python time sleep()方法


描述

Python time sleep() 函數推遲調用線程的運行,可通過參數secs指秒數,表示進程掛起的時間。

語法

sleep()方法語法:

time.sleep(t)

參數

  • t -- 推遲執行的秒數。

返回值

該函數沒有返回值。

實例

以下實例展示了 sleep() 函數的使用方法:

實例

#!/usr/bin/python import time print "Start : %s" % time.ctime() time.sleep( 5 ) print "End : %s" % time.ctime()

以上實例輸出結果為:

Start : Tue Feb 17 10:19:18 2013
End : Tue Feb 17 10:19:23 2013

Python time strftime()方法


描述

Python time strftime() 函數接收以時間元組,並返回以可讀字符串表示的當地時間,格式由參數format決定。

語法

strftime()方法語法:

time.strftime(format[, t])

參數

  • format -- 格式字符串。
  • t -- 可選的參數t是一個struct_time對象。

返回值

返回以可讀字符串表示的當地時間。

說明

python中時間日期格式化符號:

  • %y 兩位數的年份表示(00-99)
  • %Y 四位數的年份表示(000-9999)
  • %m 月份(01-12)
  • %d 月內中的一天(0-31)
  • %H 24小時制小時數(0-23)
  • %I 12小時制小時數(01-12)
  • %M 分鐘數(00=59)
  • %S 秒(00-59)
  • %a 本地簡化星期名稱
  • %A 本地完整星期名稱
  • %b 本地簡化的月份名稱
  • %B 本地完整的月份名稱
  • %c 本地相應的日期表示和時間表示
  • %j 年內的一天(001-366)
  • %p 本地A.M.或P.M.的等價符
  • %U 一年中的星期數(00-53)星期天為星期的開始
  • %w 星期(0-6),星期天為星期的開始
  • %W 一年中的星期數(00-53)星期一為星期的開始
  • %x 本地相應的日期表示
  • %X 本地相應的時間表示
  • %Z 當前時區的名稱
  • %% %號本身

實例

以下實例展示了 strftime() 函數的使用方法:

#!/usr/bin/python
import time

t = (2009, 2, 17, 17, 3, 38, 1, 48, 0)
t = time.mktime(t)
print time.strftime("%b %d %Y %H:%M:%S", time.gmtime(t))

以上實例輸出結果為:

Feb 17 2009 09:03:38

Python time strptime()方法


描述

Python time strptime() 函數根據指定的格式把一個時間字符串解析為時間元組。

語法

strptime()方法語法:

time.strptime(string[, format])

參數

  • string -- 時間字符串。
  • format -- 格式化字符串。

返回值

返回struct_time對象。

說明

python中時間日期格式化符號:

  • %y 兩位數的年份表示(00-99)
  • %Y 四位數的年份表示(000-9999)
  • %m 月份(01-12)
  • %d 月內中的一天(0-31)
  • %H 24小時制小時數(0-23)
  • %I 12小時制小時數(01-12)
  • %M 分鐘數(00=59)
  • %S 秒(00-59)
  • %a 本地簡化星期名稱
  • %A 本地完整星期名稱
  • %b 本地簡化的月份名稱
  • %B 本地完整的月份名稱
  • %c 本地相應的日期表示和時間表示
  • %j 年內的一天(001-366)
  • %p 本地A.M.或P.M.的等價符
  • %U 一年中的星期數(00-53)星期天為星期的開始
  • %w 星期(0-6),星期天為星期的開始
  • %W 一年中的星期數(00-53)星期一為星期的開始
  • %x 本地相應的日期表示
  • %X 本地相應的時間表示
  • %Z 當前時區的名稱
  • %% %號本身

實例

以下實例展示了 strptime() 函數的使用方法:

實例(Python 2.0+)

#!/usr/bin/python # -*- coding: UTF-8 -*- import time struct_time = time.strptime("30 Nov 00", "%d %b %y") print "返回的元組: %s " % struct_time

以上實例輸出結果為:

返回的元組: time.struct_time(tm_year=2000, tm_mon=11, tm_mday=30, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=3, tm_yday=335, tm_isdst=-1) 

Python time time()方法


描述

Python time time() 返回當前時間的時間戳(1970紀元後經過的浮點秒數)。

語法

time()方法語法:

time.time()

返回當前時間的時間戳(1970紀元後經過的浮點秒數)。

實例

以下實例展示了 time() 函數的使用方法:

#!/usr/bin/python
import time

print "time.time(): %f " %  time.time()
print time.localtime( time.time() )
print time.asctime( time.localtime(time.time()) )

以上實例輸出結果為:

time.time(): 1234892919.655932
(2009, 2, 17, 10, 48, 39, 1, 48, 0)
Tue Feb 17 10:48:39 2009
Python time strptime()方法 Python time tzset()方法

1 篇筆記

  1. 利用time.time()方法,我們可以計算兩個時間點之間的間隔,但是有些時候我們想要得到當前的年月日這些信息,那麽在python中該怎麽做呢?方法如下:

    >>> import time()
    >>> print time.time()
    1518068251.33
    >>> time = time.localtime(time.time())
    >>> print time
    time.struct_time(tm_year=2018, tm_mon=2, tm_mday=8, tm_hour=13, tm_min=37, tm_sec=31, tm_wday=3, tm_yday=39, tm_isdst=0)
    >>> print time.tm_year
    2018
    >>> print time.tm_mon
    2

    Python time tzset()方法


    描述

    Python time tzset() 根據環境變量TZ重新初始化時間相關設置。

    標準TZ環境變量格式:

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

    參數

    • std 和 dst:三個或者多個時間的縮寫字母。傳遞給 time.tzname.
    • offset: 距UTC的偏移,格式: [+|-]hh[:mm[:ss]] {h=0-23, m/s=0-59}。
    • start[/time], end[/time]: DST 開始生效時的日期。格式為 m.w.d — 代表日期的月份、周數和日期。w=1 指月份中的第一周,而 w=5 指月份的最後一周。‘start‘ 和 ‘end‘ 可以是以下格式之一:
      • Jn: 儒略日 n (1 <= n <= 365)。閏年日(2月29)不計算在內。
      • n: 儒略日 (0 <= n <= 365)。 閏年日(2月29)計算在內
      • Mm.n.d: 日期的月份、周數和日期。w=1 指月份中的第一周,而 w=5 指月份的最後一周。
      • time:(可選)DST 開始生效時的時間(24 小時制)。默認值為 02:00(指定時區的本地時間)。

    實例

    以下實例展示了 tzset() 函數的使用方法:

    #!/usr/bin/python
    import time
    import os
    
    os.environ[‘TZ‘] = ‘EST+05EDT,M4.1.0,M10.5.0‘
    time.tzset()
    print time.strftime(‘%X %x %Z‘)
    
    os.environ[‘TZ‘] = ‘AEST-10AEDT-11,M10.5.0,M3.5.0‘
    time.tzset()
    print time.strftime(‘%X %x %Z‘)

    以上實例輸出結果為:

    13:00:40 02/17/09 EST
    05:00:40 02/18/09 AEDT

    1.datetime.date 類

    1.新建一個date對象,日期為今天,既可以直接調用datetime.date.today(),也可以直接向datetime.date()傳值,如下:
    In [4]: today = datetime.date.today()
    In [5]: today
    Out[5]: datetime.date(2014, 8, 15)
    In [6]: t = datetime.date(2014,8,15)
    In [7]: t
    Out[7]: datetime.date(2014, 8, 15)
    
    2.datetime.date.strftime(format) 格式化為需要的時間,如常用的 “年-月-日 小時:分鐘:秒” 格式
    In [8]: today.strftime(‘%Y-%m-%d %H:%M:%S‘)
    Out[8]: ‘2014-08-15 00:00:00’
    date對象中小時、分鐘、秒默認都是0,紀元年的那個時間
    
    3.datetime.date.timple() 轉成struct_time格式,這樣傳遞給time.mktime(t)  後,直接轉成時間戳格式
    In [9]: today.timetuple()
    Out[9]: time.struct_time(tm_year=2014, tm_mon=8, tm_mday=15, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=4, tm_yday=227, tm_isdst=-1)
    In [10]: time.mktime(today.timetuple())
    Out[10]: 1408032000.0
    
    4.datetime.date.replace(year, month, day)  返回一個替換後的date對象
    In [11]: today.replace(year=2013)
    Out[11]: datetime.date(2013, 8, 15)
    
    5.datetime.date.fromtimestamp(timestamp) 將時間戳轉化為date對象
    In [12]: datetime.date.fromtimestamp(1408058729)
    Out[12]: datetime.date(2014, 8, 15)


    2.datetime.time 類

    1.新建一個time對象
    In [15]: t
    Out[15]: datetime.time(8, 45, 20)
    
    2.datetime.time.(format)格式化輸出
    In [16]: t.strftime(‘%Y-%m-%d %H:%M:%S‘)
    Out[16]: ‘1900-01-01 08:45:20’
    time對應的年、月、日為1900、01、01,紀元年的那個時間
    
    3.datetime.time.replace([hour[, minute[, second[, microsecond[, tzinfo]]]]])  返回一個替換後的time對象
    In [17]: t.replace(hour=9)
    Out[17]: datetime.time(9, 45, 20)


    3.datetime.datetime類

    其實和date的那些方法差不多了,大概看以下,簡單說說
    1.新建一個datetime對象,日期為今天,既可以直接調用datetime.datetime.today(),也可以直接向datetime.datetime()傳值,如下:
    In [21]: d1 = datetime.datetime.today()
    In [22]: d1
    Out[22]: datetime.datetime(2014, 8, 15, 8, 12, 34, 790945)
    In [23]: d2 = datetime.datetime(2014, 8, 15, 8, 12, 34, 790945)
    In [24]: d2
    Out[24]: datetime.datetime(2014, 8, 15, 8, 12, 34, 790945)
    
    2.datetime.datetime.now([tz]) 當不指定時區時,和datetime.datetime.today()是一樣的結果,如下
    In [25]: datetime.datetime.now()
    Out[25]: datetime.datetime(2014, 8, 15, 8, 14, 50, 738672)
    
    3..datetime.datetime.strftime(format) 格式化為需要的時間,如常用的 “年-月-日 小時:分鐘:秒” 格式
    In [27]: d1
    Out[27]: datetime.datetime(2014, 8, 15, 8, 12, 34, 790945)
    In [28]: d1.strftime(‘%Y-%m-%d %H:%M:%S‘)
    Out[28]: ‘2014-08-15 08:12:34’
    
    4.datetime.datetime.timple() 轉成struct_time格式,這樣傳遞給time.mktime(t)  後,直接轉成時間戳格式
    In [29]: d1
    Out[29]: datetime.datetime(2014, 8, 15, 8, 12, 34, 790945)
    In [30]: d1.timetuple()
    Out[30]: time.struct_time(tm_year=2014, tm_mon=8, tm_mday=15, tm_hour=8, tm_min=12, tm_sec=34, tm_wday=4, tm_yday=227, tm_isdst=-1)
    In [31]: time.mktime(d1.timetuple())
    Out[31]: 1408061554.0
    
    5.datetime.datetime.replace(year, month, day)  返回一個替換後的date對象
    In [32]: d1
    Out[32]: datetime.datetime(2014, 8, 15, 8, 12, 34, 790945)
    In [33]: d1.replace(year=2000)
    Out[33]: datetime.datetime(2000, 8, 15, 8, 12, 34, 790945)
    
    6.datetime.datetime.fromtimestamp(timestamp) 將時間戳轉化為datetime對象
    In [34]: time.time()
    Out[34]: 1408061894.081552
    In [35]: datetime.datetime.fromtimestamp(1408061894)
    Out[35]: datetime.datetime(2014, 8, 15, 8, 18, 14)
    

    4.datetime.timedelta類

    沒啥好說的,主要做時間的加減法用,如下:
    In [78]: today = datetime.datetime.today()
    In [79]: yesterday = today - datetime.timedelta(days=1)
    In [80]: yesterday
    Out[80]: datetime.datetime(2014, 8, 14, 15, 8, 25, 783471)
    In [81]: today
    Out[81]: datetime.datetime(2014, 8, 15, 15, 8, 25, 783471)
     
 



time datetime 總結