python內建時間模塊 time和datetime

時間模塊函數

UTC(Coordinated Universal Time,世界協調時)亦即格林威治天文時間,世界標準時間。在中國爲UTC+8。DST(Daylight Saving Time)即夏令時。spa

在Python中,一般有這幾種方式來表示時間:
1)時間戳,1970年1月1日以後的秒,即:time.time()
2)格式化的時間字符串,即:time.strftime('%Y-%m-%d')
3)結構化時間: 元組共九個元素,包含了:年、月、日、星期等... 返回struct_time的函數主要有gmtime(),localtime(),strptime()等.code

>>> import time

>>> time.time()                        #返回時間戳                                            
1547911729.4856396

>>> time.localtime()                    #可加時間戳參數time.time()
time.struct_time(tm_year=2019, tm_mon=1, tm_mday=19, tm_hour=23, tm_min=29, tm_sec=42, tm_wday=5, tm_yday=19, tm_isdst=0)                

>>> time.localtime()                    #可加時間戳參數time.time()
time.struct_time(tm_year=2019, tm_mon=1, tm_mday=19, tm_hour=23, tm_min=30, tm_sec=53, tm_wday=5, tm_yday=19, tm_isdst=0)

>>> time.strftime('%Y-%m-%d')           # 默認當前時間
'2019-01-19'

>>> time.strftime('%Y-%m-%d', time.localtime())    # 默認當前時間
'2019-01-19'

>>> time.strptime('2019-01-19', '%Y-%m-%d')     #自定義時間
time.struct_time(tm_year=2019, tm_mon=1, tm_mday=19, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=5, tm_yday=19, tm_isdst=-1)
                       

>>> time.asctime()                          #返回時間格式
'Sat Jan 19 23:33:21 2019'

>>> time.localtime()                        #返回本地時間 的struct time對象格式
time.struct_time(tm_year=2019, tm_mon=1, tm_mday=19, tm_hour=23, tm_min=34, tm_sec=8, tm_wday=5, tm_yday=19, tm_isdst=0)

>>> time.asctime(time.localtime())           #返回時間格式
'Sat Jan 19 23:35:03 2019'

>>> time.ctime()                             #返回時間格式
'Sat Jan 19 23:25:03 2019'

>>> time.process_time()             #測量處理器運算時間,不包括sleep時間
5.1948333

#將日期字符串 轉成 struct時間對象格式
>>> string_2_struct = time.strptime("2019-01-19","%Y-%m-%d")
>>> print(string_2_struct)
time.struct_time(tm_year=2019, tm_mon=1, tm_mday=19, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=5, tm_yday=19, tm_isdst=-1)

#將struct時間對象轉成時間戳
>>> struct_2_stamp = time.mktime(string_2_struct)
>>> print(struct_2stamp)
1547827200.0

#將時間戳轉爲字符串格式

# 1.將utc時間戳轉換成struct_time格式
>>> time.gmtime(time.time()-86640)
time.struct_time(tm_year=2019, tm_mon=1, tm_mday=18, tm_hour=15, tm_min=38, tm_sec=29, tm_wday=4, tm_yday=18, tm_isdst=0)

# 2.將utc struct_time格式轉成指定的字符串格式

>>> time.strftime("%Y-%m-%d %H:%M:%S",time.gmtime())
'2019-01-19 15:43:41'

時間加減 對象

>>> import time
>>> import datetime

>>> datetime.datetime.now()                                                      # 返回2019-01-20 00:03:39.547184 
datetime.datetime(2019, 1, 20, 0, 3, 39, 547184)

>>> datetime.date.fromtimestamp(time.time())                        # 時間戳直接轉成日期格式2019-01-20
datetime.date(2019, 1, 20)

>>> datetime.datetime.now() + datetime.timedelta(3)     # 當前時間+3天
datetime.datetime(2019, 1, 23, 0, 4, 10, 418950)

>>> datetime.datetime.now() + datetime.timedelta(-3)     # 當前時間-3天
datetime.datetime(2019, 1, 17, 0, 4, 25, 591817)

>>> datetime.datetime.now() + datetime.timedelta(hours=3)   # 當前時間+3小時
datetime.datetime(2019, 1, 20, 3, 4, 41, 192710)

>>> datetime.datetime.now() + datetime.timedelta(minutes=30)  # 當前時間+30分
datetime.datetime(2019, 1, 20, 0, 34, 50, 179224)

>>> c_time  = datetime.datetime.now()                         # 時間替換
>>> c_time.replace(minute=3,hour=2)
datetime.datetime(2019, 1, 20, 2, 3, 12, 677511)

格式參照blog

%a    本地(locale)簡化星期名稱    
%A    本地完整星期名稱    
%b    本地簡化月份名稱    
%B    本地完整月份名稱    
%c    本地相應的日期和時間表示    
%d    一個月中的第幾天(01 - 31%H    一天中的第幾個小時(24小時制,00 - 23%I    第幾個小時(12小時制,01 - 12%j    一年中的第幾天(001 - 366%m    月份(01 - 12%M    分鐘數(00 - 59%p    本地am或者pm的相應符    一    
%S    秒(01 - 61)    二    
%U    一年中的星期數。(00 - 53星期天是一個星期的開始。)第一個星期天以前的全部天數都放在第0周。    三    
%w    一個星期中的第幾天(0 - 6,0是星期天)    三    
%W    和%U基本相同,不一樣的是%W以星期一爲一個星期的開始。    
%x    本地相應日期    
%X    本地相應時間    
%y    去掉世紀的年份(00 - 99%Y    完整的年份    
%Z    時區的名字(若是不存在爲空字符)    
%%    ‘%’字符

時間關係轉換文檔

 

 

 

參考文檔:字符串

                http://blog.51cto.com/egon09/1840425string

相關文章
相關標籤/搜索