一、認識strftime函數
Python是一種優秀的編程語言,在開發過程中,你經常需要在代碼中處理時間和日期。Python的datetime模塊提供了處理日期、時間和時間段的類和方法,而strftime()方法可以將日期和時間轉換為其字元串表示形式。strftime()是Python中日期和時間格式化的函數之一,以簡單的方式提供了日期和時間的各種格式的表示。
首先,我們來了解一下strftime()函數。該函數接受一個日期/時間對象並將其轉換為一個字元串。
>>> import datetime
>>> now = datetime.datetime.now()
>>> str_date = now.strftime("%Y-%m-%d %H:%M:%S")
>>> print(str_date)
2022-09-18 23:33:35
此處,我們獲取當前時間並將其格式化為年-月-日 小時:分鐘:秒的形式並轉換為字元串。這是strftime()最常見的用途之一。
二、時間格式化字元串
在strftime()函數中使用格式化字元串,對於日期和時間的表示有很多不同的選項。以下是最常用的一些格式化字元串:
格式化字元串 | 說明 |
---|---|
%Y | 年份(四位數) |
%m | 月份(帶前導零) |
%d | 日期(帶前導零) |
%H | 小時(24小時制,帶前導零) |
%M | 分鐘(帶前導零) |
%S | 秒數(帶前導零) |
在格式化字元串中,不僅僅只有上述的字元,下面的字元串也常常被使用如下:
格式化字元串 | 說明 |
---|---|
%a | 本地簡化星期名稱(比如’Mon’) |
%A | 本地完整星期名稱(比如’Monday’) |
%b | 本地簡化月份名稱(比如’Jan’) |
%B | 本地完整月份名稱(比如’January’) |
%c | 本地相應的日期和時間表示 |
%j | 一年中的第幾天(001 至 366) |
%p | 本地A.M.或P.M.的等價符 |
%U | 一年中的星期數(00 至 53)星期天為星期的開始 |
%w | 星期(0代表周日,6代表周六) |
%W | 一年中的星期數(00 至 53)星期一為星期的開始 |
%x | 本地相應的日期表示 |
%X | 本地相應的時間表示 |
%z | 當前時區偏移量的整數部分 |
%Z | 當前時區的名稱 |
%% | 字元% |
三、日期格式化
在datetime對象中,strftime()方法可以按照格式化字元串將日期和時間表示成新的字元串。 以下是日期格式化的一些例子:
>>> import datetime
>>> today = datetime.date.today()
>>> str_date = today.strftime("%b %d, %Y")
>>> print(str_date)
Sep 18, 2022
此處,我們獲取當前日期並將其格式化為「月份(簡寫) 日, 年份」的形式。
四、24小時格式化
在strftime()函數中,我們也可以將時間格式化為24小時格式:
>>> import datetime
>>> now = datetime.datetime.now()
>>> str_time = now.strftime("%H:%M:%S")
>>> print(str_time)
23:33:35
在這個例子中,我們以24小時制顯示當前時間。
五、日期加時間格式化
在strftime()函數中,我們可以將日期和時間組合起來表示成新的字元串。 以下是日期和時間格式化的一些例子:
>>> import datetime
>>> now = datetime.datetime.now()
>>> str_date = now.strftime("%Y-%m-%d %H:%M:%S")
>>> print(str_date)
2022-09-18 23:33:35
在這個例子中,我們將日期和時間格式化為「年-月-日 小時:分鐘:秒」的形式。
六、格式化不同的語言和時區
strftime()函數可以格式化不同語言和不同時區的日期和時間,只需在函數中傳遞不同的locale和tzinfo參數即可。以下是格式化語言和時區的一些例子:
>>> import datetime
>>> from babel.dates import format_date, format_time
>>> from pytz import timezone
>>> now = datetime.datetime.now()
>>> east_tz = timezone('Asia/Shanghai')
>>> str_date = format_date(now, locale='zh_CN')
>>> str_time = format_time(now.astimezone(east_tz), format='short', locale='zh_CN')
>>> print(str_date)
2022年9月18日
>>> print(str_time)
下午11點33分
在這個例子中,我們使用了Babel和pytz模塊,將當前日期和時間格式化為中文表示,並在東八區時區時間下進行字元串輸出。
七、使用字元串拼接構建日期時間字元串
strftime()函數將日期和時間格式化為字元串是很有用的,但在某些情況下,我們需要手動構造日期和時間字元串。此時,可以使用字元串拼接和日期/時間對象的屬性來實現。以下是示例代碼:
>>> import datetime
>>> now = datetime.datetime.now()
>>> str_date = str(now.year) + '-' + str(now.month) + '-' + str(now.day)
>>> str_time = str(now.hour) + ':' + str(now.minute) + ':' + str(now.second)
>>> print(str_date)
2022-9-18
>>> print(str_time)
23:33:35
在這個例子中,我們手動將當前日期和時間拼接成字元串輸出。
八、總結
strftime()是Python中一種靈活的日期和時間格式化函數,常常用於創建自定義的日期和時間字元串。在strftime()函數中,使用格式化字元串指定日期和時間的元素、大小寫以及其他特定的屬性,並將它們組合成適當的形式以生成所需的日期和時間字元串。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/151886.html