一.datetime模塊有哪幾個類?
- date 類: datetime模塊中分管對年,月,日的處理
- time 類: 分管對時鐘,分鐘,秒的處理
- datetime 類: date+time,分管年,月,日,時鐘,分鐘,秒的處理
- timedelta 類: 分管時間間隔的處理,比如今天之前的1000天是哪一天,不用轉換為時間戳,再計算,可以直接調用對象處理
- 其他 類
二.datetime類
一般調用的時候,用的最多的也是這個datetime類(畢竟它會的比較多@_@)
from datetime import datetime # 前面一個是模塊的名稱,后面一個是類的名稱,建議大家調用datetime類的時候采取這種方式,簡單而清晰
1.怎么獲取這個類的對象?
對面向對象編程有些了解的都知道,既然類都出現(xiàn)了,就一定有這個類的對象,可是有哪些方法獲取?
- 獲取指定日期和時間:
from datetime import datetime
special = datetime(2017, 8, 9, 12, 20, 20) # 類的前三個參數(shù)年,月,日必須有
# special是一個datetime對象,print輸出,得到的是:2017-08-09 12:20:20
- 獲取當前日期和時間
from datetime import datetime
now = datetime.now() # 獲取此時的這個時間刻度的datetime對象
2.datetime對象和時間戳之間的轉換
- datetime對象轉換為時間戳:
time_stamp = special.timestamp() # 1502252420.0
- 時間戳轉換為datetime對象:
another_special = datetime.fromtimestamp(time_stamp) # 2017-08-09 12:20:20(本地時間:東八區(qū))
another_special_utc = datetime.utcfromtimestamp(time_stamp) # 2017-08-09 04:20:20(UTC標準時區(qū)時間,比本地時間晚八個小時)
3.datetime對象和時間字符串之間的轉換
- datetime對象轉換為時間字符串:
from datetime import datetime
special = datetime(2017, 8, 9, 12, 20, 20) # special為datetime對象
time_string = special.strftime('%Y-%m-%d %X') # 2017-08-09 12:20:20
# 注:datetime類中的strftime()是對象方法,調用該方法的是一個實例化的datetime對象;不像time中,調用的是time類
- 時間字符串轉換為datetime對象:
again_special = datetime.strptime(time_string, '%Y-%m-%d %X') # datetime對象
注:
- datetime中,時間戳和時間字符串,以及datetime對象三者之間,其中datetime是橋梁,是中間人!
- 在上述方法中,除了strftime方法和timestamp()是對象方法外,其他的都是類方法直接調用的
Last:時間間隔處理(timedelta)
>>> from datetime import datetime, timedelta
>>> now = datetime.now()
>>> print(now)
2017-08-09 12:02:08.850243
>>> s1 = now + timedelta(hours=10) # 十小時后是什么時間?
>>> print(s1)
2017-08-09 22:02:08.850243
>>> s2 = now - timedelta(days=1000) # 1000天前是什么日子?
>>> print(s2)
2014-11-13 12:02:08.850243
>>> s3 = now + timedelta(days=2, hours=43) # 兩天后,再多個43小時后是什么日子?
>>> print(s3)
2017-08-13 07:02:08.850243
>>>
其他:
datetime對象還有許多非常有用的屬性,如:對象.year,對象.month