在本文中,您將學(xué)習(xí)如何將date、time和datetime對象轉(zhuǎn)換為它的等效字符串(通過示例)
strftime()方法使用date,time或datetime對象返回表示日期和時間的字符串。
下面的程序?qū)atetime包含當(dāng)前日期和時間的對象轉(zhuǎn)換 為不同格式的字符串。
from datetime import datetime now = datetime.now() # 當(dāng)前的日期和時間 year = now.strftime("%Y") print("年:", year) month = now.strftime("%m") print("月:", month) day = now.strftime("%d") print("日:", day) time = now.strftime("%H:%M:%S") print("時間:", time) date_time = now.strftime("%m/%d/%Y, %H:%M:%S") print("日期和時間:",date_time)
當(dāng)您運行程序時,輸出將如下所示:
年: 2020 月: 04 日: 13 時間: 17:35:22 日期和時間: 04/13/2020, 17:35:22
在這里,year,day,time和date_time是字符串,而now是一個datetime對象。
在上述程序中,%Y,%m,%d等是格式碼。strftime()方法采用一個或多個格式代碼作為參數(shù),并基于該方法返回格式化的字符串。
我們datetime從datetime模塊導(dǎo)入了類。這是因為datetime類的對象可以訪問strftime()方法。
datetime包含當(dāng)前日期和時間的對象存儲在now變量中。
strftime()方法可用于創(chuàng)建格式化的字符串。
您傳遞給strftime()方法的字符串可能包含多個格式代碼。
from datetime import datetime timestamp = 1578797322 date_time = datetime.fromtimestamp(timestamp) print("日期時間對象:", date_time) d = date_time.strftime("%m/%d/%Y, %H:%M:%S") print("輸出 2:", d) d = date_time.strftime("%d %b, %Y") print("輸出 3:", d) d = date_time.strftime("%d %B, %Y") print("輸出 4:", d) d = date_time.strftime("%I%p") print("輸出 5:", d)
運行該程序時,輸出為:
日期時間對象: 2020-01-12 10:48:42 輸出 2: 01/12/2020, 10:48:42 輸出 3: 12 Jan, 2020 輸出 4: 12 January, 2020 輸出 5: 10AM
下表顯示了您可以傳遞給該strftime()方法的所有代碼。
指令 | 含義 | 例如 |
%a | 工作日名稱的縮寫。 | Sun, Mon, ... |
%A | 工作日全名。 | Sunday, Monday, .. |
%w | 工作日為十進(jìn)制數(shù)字。 | 0,1,...,6 |
%d | 月份中的一天,以零填充的十進(jìn)制數(shù)表示。 | 01,02,...,31 |
%-d | 以十進(jìn)制數(shù)表示的月份中的一天。 | 1,2,...,30 |
%b | 月份的縮寫。 | Jan, Feb, ..., Dec |
%B | 完整的月份名稱。 | January, February, ... |
%m | 月份為零填充的十進(jìn)制數(shù)字。 | 01、02,...,12 |
%-m | 以十進(jìn)制數(shù)表示的月份。 | 1,2,...,12 |
%y | 無世紀(jì)的年份,為零填充的十進(jìn)制數(shù)字。 | 00、01,...,99 |
%-y | 沒有世紀(jì)的年份作為十進(jìn)制數(shù)字。 | 0,1,...,99 |
%Y | 以世紀(jì)作為十進(jìn)制數(shù)字的年份。 | 2013、2019等 |
%H | 小時(24小時制),為補零的十進(jìn)制數(shù)字。 | 00、01,...,23 |
%-H | 小時(24小時制)為十進(jìn)制數(shù)字。 | 0,1,...,23 |
%I | 小時(12小時制),為零填充的十進(jìn)制數(shù)字。 | 01、02,...,12 |
%-I | 小時(12小時制)為十進(jìn)制數(shù)字。 | 1 2 2 |
%p | 語言環(huán)境的上午或下午。 | AM,PM |
%M | 分鐘,為零填充的十進(jìn)制數(shù)字。 | 00、01,...,59 |
%-M | 以十進(jìn)制數(shù)字表示。 | 0,1,...,59 |
%S | 第二個為零填充的十進(jìn)制數(shù)。 | 00、01,...,59 |
%-S | 第二個十進(jìn)制數(shù)字。 | 0,1,...,59 |
%f | 微秒,十進(jìn)制數(shù),在左側(cè)補零。 | 000000-999999 |
%z | UTC偏移量,格式為+ HHMM或-HHMM。 | |
%Z | 時區(qū)名稱。 | |
%j | 一年中的一天,以零填充的十進(jìn)制數(shù)字表示。 | 001,002,...,366 |
%-j | 一年中的天,以十進(jìn)制數(shù)字表示。 | 1,2,...,366 |
%U | 一年中的第幾周(星期日為一周的第一天)。在第一個星期日之前的新的一年中的所有天都被視為在第0周。 | 00、01,...,53 |
%W | 一年中的第幾周(星期一為一周中的第一天)。第一個星期一之前的新的一年中的所有天均視為在第0周。 | 00、01,...,53 |
%c | 語言環(huán)境的適當(dāng)日期和時間表示。 | Mon Sep 30 07:06:05 2019 |
%x | 語言環(huán)境的適當(dāng)日期表示形式。 | 13/9/30 |
%X | 語言環(huán)境的適當(dāng)時間表示形式。 | 07:06:05 |
%% | 文字“%”字符。 | % |
from datetime import datetime timestamp = 1578797322 date_time = datetime.fromtimestamp(timestamp) d = date_time.strftime("%c") print("輸出 1:", d) d = date_time.strftime("%x") print("輸出 2:", d) d = date_time.strftime("%X") print("輸出 3:", d)
運行該程序時,輸出為:
輸出 1: Sun Jan 12 10:48:42 2020 輸出 2: 01/12/20 輸出 3: 10:48:42
格式代碼%c,%x以及%X用于語言環(huán)境的適當(dāng)?shù)娜掌诤蜁r間表示。
我們還建議您檢查Python strptime()。strptime()方法從字符串創(chuàng)建datetime對象。