python的時間處理-time模塊


time模塊

時間的表示方法有三種:

  • 時間戳:表示的是從1970年1月1日0點至今的秒數
  • 格式化字符串表示:這種表示更習慣我們通常的讀法,如2018-04-24 00:00:00
  • 格式化元祖表示:是一個具有九個元素的元祖

時間戳與格式元組的互相轉換

import time   #導入time模塊

d = time.time()  # 顯示當前的時間戳

d
Out[16]: 1524570062.944023

time.localtime(d)    #把時間戳轉換為含9個元素的元組,轉換為當地時間
Out[17]: time.struct_time(tm_year=2018, tm_mon=4, tm_mday=24, tm_hour=19, tm_min=41, tm_sec=2, tm_wday=1, tm_yday=114, tm_isdst=0)

time.gmtime(d)     #把時間戳轉換為含9個元素的元組,轉換為UTC時間
Out[18]: time.struct_time(tm_year=2018, tm_mon=4, tm_mday=24, tm_hour=11, tm_min=41, tm_sec=2, tm_wday=1, tm_yday=114, tm_isdst=0)

ld = time.localtime(d)  #

ld.tm_year    #轉換的元組,可以根據需要單獨計算對應的時間
Out[20]: 2018

time.mktime(ld)  # 把元組在轉換回時間戳
Out[21]: 1524570062.0

備注:UTC時間為格林威治時間,比東八區晚8個小時!

 

時間戳與格式化字符串的轉換:

時間戳-------->格式化元組---------->格式化字符串

help(time.strftime)
Help on built-in function strftime in module time:

strftime(...)
    strftime(format[, tuple]) -> string   #函數的格式使用
    
    Convert a time tuple to a string according to a format specification.
    See the library reference manual for formatting codes. When the time tuple
    is not present, current time as returned by localtime() is used.
    
    Commonly used format codes:
    
    %Y  Year with century as a decimal number. 
    %m  Month as a decimal number [01,12].
    %d  Day of the month as a decimal number [01,31].
    %H  Hour (24-hour clock) as a decimal number [00,23].
    %M  Minute as a decimal number [00,59].
    %S  Second as a decimal number [00,61].
    %z  Time zone offset from UTC.
    %a  Locale's abbreviated weekday name.
    %A  Locale's full weekday name.
    %b  Locale's abbreviated month name.
    %B  Locale's full month name.
    %c  Locale's appropriate date and time representation.
    %I  Hour (12-hour clock) as a decimal number [01,12].
    %p  Locale's equivalent of either AM or PM.
    
    Other codes may be available on your platform.  See documentation for
    the C library strftime function.
ld   #格式化元組的數據
Out[22]: time.struct_time(tm_year=2018, tm_mon=4, tm_mday=24, tm_hour=19, tm_min=41, tm_sec=2, tm_wday=1, tm_yday=114, tm_isdst=0)

time.strftime("%Y-%m-%d %H:%M:%S", ld)
Out[25]: '2018-04-24 19:41:02'

time.strftime("%Y-%m-%d %X", ld)
Out[26]: '2018-04-24 19:41:02'

time.strftime("%Y-%m-%d %X %p", ld) #時間戳轉換為格式化元組
Out[27]: '2018-04-24 19:41:02 PM'

#字符串轉換為格式化元組,注意格式對應
time.strptime('2018-04-24 19:41:02 PM',"%Y-%m-%d %H:%M:%S %p")
Out[32]: time.struct_time(tm_year=2018, tm_mon=4, tm_mday=24, tm_hour=19, tm_min=41, tm_sec=2, tm_wday=1, tm_yday=114, tm_isdst=-1)

根據時間戳轉換為字符格式

help(time.ctime)
Help on built-in function ctime in module time:

ctime(...)
    ctime(seconds) -> string
    
    Convert a time in seconds since the Epoch to a string in local time.
    This is equivalent to asctime(localtime(seconds)). When the time tuple is
    not present, current time as returned by localtime() is used.


time.ctime(time.time())
Out[34]: 'Tue Apr 24 20:02:46 2018'

根據struct_time格式的元組轉換為字符串

help(time.asctime)
Help on built-in function asctime in module time:

asctime(...)
    asctime([tuple]) -> string
    
    Convert a time tuple to a string, e.g. 'Sat Jun 06 16:26:11 1998'.
    When the time tuple is not present, current time as returned by localtime()
    is used.


time.asctime(ld)
Out[36]: 'Tue Apr 24 19:41:02 2018'

datetime模塊

dateimte模塊對time模塊進行了封裝,提供了更多功能的接口:

在csdn上看到一個博客,講的蠻詳細的,博主禁止轉載,因此附上鏈接。datetime模塊

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM