在本文中,您將學習如何將date、time和datetime對象轉換為它的等效字符串(通過示例)
strftime()方法使用date,time或datetime對象返回表示日期和時間的字符串。
下面的程序將datetime包含當前日期和時間的對象轉換 為不同格式的字符串。
from datetime import datetime
now = datetime.now() # 當前的日期和時間
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)當您運行程序時,輸出將如下所示:
年: 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模塊導入了類。這是因為datetime類的對象可以訪問strftime()方法。
datetime包含當前日期和時間的對象存儲在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 | 工作日為十進制數(shù)字。 | 0,1,...,6 |
| %d | 月份中的一天,以零填充的十進制數(shù)表示。 | 01,02,...,31 |
| %-d | 以十進制數(shù)表示的月份中的一天。 | 1,2,...,30 |
| %b | 月份的縮寫。 | Jan, Feb, ..., Dec |
| %B | 完整的月份名稱。 | January, February, ... |
| %m | 月份為零填充的十進制數(shù)字。 | 01、02,...,12 |
| %-m | 以十進制數(shù)表示的月份。 | 1,2,...,12 |
| %y | 無世紀的年份,為零填充的十進制數(shù)字。 | 00、01,...,99 |
| %-y | 沒有世紀的年份作為十進制數(shù)字。 | 0,1,...,99 |
| %Y | 以世紀作為十進制數(shù)字的年份。 | 2013、2019等 |
| %H | 小時(24小時制),為補零的十進制數(shù)字。 | 00、01,...,23 |
| %-H | 小時(24小時制)為十進制數(shù)字。 | 0,1,...,23 |
| %I | 小時(12小時制),為零填充的十進制數(shù)字。 | 01、02,...,12 |
| %-I | 小時(12小時制)為十進制數(shù)字。 | 1 2 2 |
| %p | 語言環(huán)境的上午或下午。 | AM,PM |
| %M | 分鐘,為零填充的十進制數(shù)字。 | 00、01,...,59 |
| %-M | 以十進制數(shù)字表示。 | 0,1,...,59 |
| %S | 第二個為零填充的十進制數(shù)。 | 00、01,...,59 |
| %-S | 第二個十進制數(shù)字。 | 0,1,...,59 |
| %f | 微秒,十進制數(shù),在左側補零。 | 000000-999999 |
| %z | UTC偏移量,格式為+ HHMM或-HHMM。 | |
| %Z | 時區(qū)名稱。 | |
| %j | 一年中的一天,以零填充的十進制數(shù)字表示。 | 001,002,...,366 |
| %-j | 一年中的天,以十進制數(shù)字表示。 | 1,2,...,366 |
| %U | 一年中的第幾周(星期日為一周的第一天)。在第一個星期日之前的新的一年中的所有天都被視為在第0周。 | 00、01,...,53 |
| %W | 一年中的第幾周(星期一為一周中的第一天)。第一個星期一之前的新的一年中的所有天均視為在第0周。 | 00、01,...,53 |
| %c | 語言環(huán)境的適當日期和時間表示。 | Mon Sep 30 07:06:05 2019 |
| %x | 語言環(huán)境的適當日期表示形式。 | 13/9/30 |
| %X | 語言環(huán)境的適當時間表示形式。 | 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)境的適當?shù)娜掌诤蜁r間表示。
我們還建議您檢查Python strptime()。strptime()方法從字符串創(chuàng)建datetime對象。