Python是一種優雅而簡單的編程語言,具有出色的穩定性和可讀性,廣泛應用於數據科學、人工智慧、網路編程和網站開發等領域。時間和日期的處理在Python編程中非常基礎且重要,在本文中我們將以Python的時間和日期模塊(time和datetime)為基礎,深入講解Python如何處理時間和日期,並介紹一些常見的應用場景。
一、time模塊
Python的time模塊是處理時間的基礎模塊,常用於獲取當前時間、計時、延時等操作。使用前需要使用 「import time」 在代碼中導入模塊。
1、 獲取當前時間
>>> import time
>>> current_time = time.localtime()
>>> print(current_time)
time.struct_time(tm_year=2021, tm_mon=4, tm_mday=16, tm_hour=14, tm_min=23, tm_sec=18, tm_wday=4, tm_yday=106, tm_isdst=0)
上述代碼中,time.localtime()函數會返回一個包含當前時間的time.struct_time對象,該對象包含年月日,時分秒等信息。
2、計時
>>> import time
>>> start_time = time.time()
>>> time.sleep(2)
>>> end_time = time.time()
>>> print(end_time-start_time)
2.0007262229919434
上述代碼中通過 time.time() 獲取系統時間戳來進行計時,sleep(2)表示程序休息2秒,即計時2秒鐘。返回的是按秒計算的浮點數,兩個參數相減即可得到程序運行時間。
3、格式化時間
>>> import time
>>> current_time = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime())
>>> print(current_time)
2021-04-16 14:41:43
上述代碼中將時間格式化成指定的格式,常用的格式有 %Y(年)、%m(月)、%d(日)、%H(時)、%M(分)、%S(秒) 等。time.localtime()返回的時間是struct_time類型,strftime()將其格式化成指定的字元串格式。
二、datetime模塊
Python的datetime模塊也是處理時間的重要模塊,比time模塊更加高級、靈活。datetime提供了時間和日期的解析、格式化、加減、比較等的操作。
1、獲取當前日期和時間
>>> from datetime import datetime
>>> current_time = datetime.now()
>>> print(current_time)
2021-04-16 14:49:35.631708
上述代碼中,使用datetime.now()獲取當前日期和時間。
2、獲取指定日期
>>> from datetime import datetime
>>> specific_time = datetime(2021, 4, 16, 16, 30, 0)
>>> print(specific_time)
2021-04-16 16:30:00
上述代碼中,通過datetime(year, month, day, hour, minute, second)構造函數,獲取指定日期和時間。
3、加減時間
>>> from datetime import datetime, timedelta
>>> current_time = datetime.now()
>>> one_day_ago = current_time - timedelta(days=1)
>>> print(one_day_ago)
2021-04-15 14:55:46.073013
上述代碼中,通過timedelta()參數指定時間間隔,以天(days)為單位進行加減,返回的是一個新的datetime對象。
4、比較時間大小
>>> from datetime import datetime
>>> time_a = datetime(2021, 4, 16, 16, 0, 0)
>>> time_b = datetime(2021, 4, 16, 14, 0, 0)
>>> print(time_a > time_b)
True
上述代碼中,使用比較運算符進行比較兩個時間,返回True或False。
三、常見應用場景
1、計時器
>>> import time
>>> def countdown(n):
... while n > 0:
... print(n)
... n = n - 1
... time.sleep(1)
... print("Start!")
>>> countdown(3)
3
2
1
Start!
上述代碼中,定義一個計時器函數countdown(),使用 time.sleep(1) 使程序運行時間延長1秒。通過輸入countdown(3)將之前定義好的計時器倒數數秒,到達0結束並提示 “Start!”。這裡提供一種最基礎的計時器實現思路。
2、日誌記錄
>>> import logging
>>> LOG_FORMAT = "%(asctime)s %(levelname)s %(message)s"
>>> logging.basicConfig(filename="log.log", level=logging.DEBUG, format=LOG_FORMAT)
>>> logging.debug("This is a debug message")
#輸出到文件log.log文件:
2021-04-16 15:31:13,484 DEBUG This is a debug message
上述代碼中,使用 logging 模塊記錄日誌,配置基本Log信息格式信息,將日誌寫入到 log.log 文件中。
3、時間戳轉換
>>> from datetime import datetime
>>> timestamp = 1618645721
>>> dt_object = datetime.fromtimestamp(timestamp)
>>> print(dt_object)
2021-04-17 03:22:01
上述代碼中, 通過datetime.fromtimestamp(timestamp)將時間戳轉成「YYYY-MM-DD HH:MM:SS」格式的日期。其中datetime.fromtimestamp() 返回一個以本地時間表示的新datetime對象。
4、時間與字元串轉換
>>> from datetime import datetime
>>> str_time = "2021-04-17 01:21:20"
>>> dt_object = datetime.strptime(str_time, '%Y-%m-%d %H:%M:%S')
>>> print(dt_object)
2021-04-17 01:21:20
上述代碼中,使用 datetime.datetime.strptime(date_string, format_string)將字元串轉成日期格式。其中datetime.datetime.strptime(date_string, format_string)將字元串解析成為日期變數,其中date_string為要解析的字元串,format_string為字元串的格式,例如%Y-%m-%d %H:%M:%S表示YYYY-MM-DD HH:MM:SS格式的日期。
總結
在Python中處理時間和日期非常方便,time和datetime模塊為我們提供了很多強大的函數和方法。通過對本文的學習,相信您已經了解了如何使用Python處理時間和日期,掌握了一些常見的應用場景。相信這些知識對於您日後在Python編程中處理時間與日期會有很大的幫助。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/303761.html