天天看點

python format函數 日期_Python格式化時間

datetime簡介

datetime和time的差別

time

在 Python 文檔裡,time是歸類在Generic Operating System Services中,換句話說, 它提供的功能是更加接近于作業系統層面的。通讀文檔可知,time 子產品是圍繞着 Unix Timestamp 進行的。

該子產品主要包括一個類 struct_time,另外其他幾個函數及相關常量。

datetime

datetime 比 time 進階了不少,可以了解為 datetime 基于 time 進行了封裝,提供了更多實用的函數。在datetime 子產品中包含了幾個類,具體關系如下:

timedelta # 主要用于計算時間跨度

tzinfo # 時區相關

time # 隻關注時間

date # 隻關注日期

datetime # 同時有時間和日期

格式化時間

格式化時間主要用到的是datetime.datetime.strftime()方法和datetime.datetime.strptime()方法,這兩個方法的一字之差'f'和'p'指的是什麼呢?

個人了解:strftime中的'f'指的是format,即格式化時間;strptime中的'p'指的是parse,即将一個字元串string按照指定的格式解析為時間

strptime的用法

官方解釋是

strptime(...)

string, format -> new datetime parsed from a string (like time.strptime()).

簡單來說,strptime的作用就是将一個字元串解析為時間,并傳回為datetime對象。

如我們有字元串 '2018-05-18 11:09:34', 如何将它轉換為datetime對象呢?

In [1]: import datetime as dt

In [2]: strTime = '2018-05-18 11:09:34'

In [3]: type(strTime)

Out[3]: str

In [4]: time = dt.datetime.strptime(strTime, '%Y-%m-%d %H:%M:%S')

In [5]: time

Out[5]: datetime.datetime(2018, 5, 18, 11, 9, 34)

In [6]: type(time)

Out[6]: datetime.datetime

strftime的用法

strftime(...)

format -> strftime() style string.

strptime的作用是格式化時間格式,使其按照我們想要的格式來顯示。如我們要得到 '11:09:34 2018-05-18' 的格式來輸出時間。

如下例,先将字元串解析為datetime對象,然後在格式化時間輸出,将其輸出按照'11:09:34 2018-05-18'的格式輸出。

In [1]: strTime = '2018-05-18 11:09:34'

In [2]: time = dt.datetime.strptime(strTime, '%Y-%m-%d %H:%M:%S')

In [3]: time

Out[3]: datetime.datetime(2018, 5, 18, 11, 9, 34)

In [4]: type(time)

Out[4]: datetime.datetime

In [5]: time.strftime('%H:%M:%S %Y-%m-%d')

Out[5]: '11:09:34 2018-05-18'

In [6]: aa = time.strftime('%H:%M:%S %Y-%m-%d')

In [7]: type(aa)

Out[7]: str