溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Python中time和datetime庫如何使用

發(fā)布時間:2021-07-10 13:52:23 來源:億速云 閱讀:210 作者:Leah 欄目:大數(shù)據(jù)

今天就跟大家聊聊有關(guān)Python中time和datetime庫如何使用,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。

時間戳

時間戳是指格林威治時間1970年01月01日00時00分00秒(北京時間1970年01月01日08時00分00秒)起至現(xiàn)在的總秒數(shù)。注意:目前Python中支持的最大的時間戳為32535244799(3001-01-01 15:59:59)

Python的time塊下有很多函數(shù)可以轉(zhuǎn)換常見日期格式。如函數(shù)time.time()用于獲取當(dāng)前時間戳。例如:

import time 
time.time() #返回當(dāng)前時間的時間戳 2000年時間戳 都是10位

1557212908.1839943

# 獲取毫秒級別的時間戳(爬蟲參數(shù)基本用14位時間戳加密)
int(round(time.time() * 1000))
1557212908183

在編寫代碼時,往往涉及時間、日期、時間戳的相互轉(zhuǎn)換。

「str類型的日期轉(zhuǎn)換為時間戳」

import time 

# 字符類型的時間
t = '2019-05-07 15:08:28'
# 轉(zhuǎn)為時間數(shù)組
timeArray = time.strptime(t, "%Y-%m-%d %H:%M:%S")
print(timeArray)
# timeArray可以調(diào)用tm_year等
print(timeArray.tm_year)   # 2019
# 轉(zhuǎn)為時間戳
timeStamp = int(time.mktime(timeArray))
print(timeStamp)  # 1381419600


# 結(jié)果如下
time.struct_time(tm_year=2019, tm_mon=5, tm_mday=7, tm_hour=15, tm_min=8, tm_sec=28, tm_wday=1, tm_yday=127, tm_isdst=-1)
2019
1557212908

「字符串格式更改」

# "2019-05-07 15:08:28" 改為 "2019/5/7 15:08:28"
# 先轉(zhuǎn)換為時間數(shù)組
import time
str_time = "2019-05-07 15:08:28"
time_array = time.strptime(str_time, "%Y-%m-%d %H:%M:%S")
other_way_time = time.strftime("%Y/%m/%d %H:%M:%S", time_array)

print(other_way_time)   # 2019/05/07 15:08:28

now = datetime.datetime.now()
otherStyleTime = now.strftime("%Y--%m--%d %H:%M:%S")
print(otherStyleTime) # 2019--05--07 15:08:28

「時間戳轉(zhuǎn)時間日期」

import time 
import datetime 
# 使用time
timeStamp = 1557212908
timeArray = time.localtime(timeStamp)
otherStyleTime = time.strftime("%Y--%m--%d %H:%M:%S", timeArray)
print(otherStyleTime)   # 2019--05--07 15:08:28
# 使用datetime
timeStamp = 1557212908
dateArray = datetime.datetime.fromtimestamp(timeStamp)
otherStyleTime = dateArray.strftime("%Y--%m--%d %H:%M:%S")
print(otherStyleTime)   # 2019--05--07 15:08:28
# 使用datetime,指定utc時間,相差8小時
timeStamp = 1557212908
dateArray = datetime.datetime.utcfromtimestamp(timeStamp)
otherStyleTime = dateArray.strftime("%Y--%m--%d %H:%M:%S")
print(otherStyleTime)   # 2019--05--07 07:08:28

Datetime

datetime模塊是在time模塊的基礎(chǔ)之上做了封裝,提供了更多更好用的類供我們使用,常用的有date、time、datetime、timedelta、tzinfo。但是為了更靈活的處理時間,最好是將time模塊和datetime模塊中的精髓學(xué)習(xí)到。

date類

date類:主要用于處理年、月、日。

date類的構(gòu)造函數(shù)如下:datetime.date(year, month, day)

示例:

from datetime import date
d = date(1999, 9, 29)
print(d)
print('year:', d.year)
print('month:', d.month)
print('day:', d.day)

具體輸出:

1999-09-29
year: 1999
month: 9
day: 29

time類

time類:主要用于處理小時、分鐘、秒。

time類的構(gòu)造函數(shù)如下:datetime.time(hour[,minute[,second[,microsecond[,tzinfo]]]])

示例:

from datetime import time
t = time(22, 45, 59)
print(t)
print('hour:', t.hour)
print('minute:', t.minute)
print('second:', t.second)
print('microsecond:', t.microsecond) #微秒
print('格式化輸出:', t.strftime('%H:%M:%S'))
print('Earliest  :', datetime.time.min) 
print('Latest    :', datetime.time.max)

輸出:

22:45:59
hour: 22
minute: 45
second: 59
microsecond: 0
格式化輸出:22:45:59
Earliest  : 00:00:00
Latest    : 23:59:59.999999

datetime子類

datetime子類是date對象和time對象的結(jié)合體,是datetime的子類,和它的方法很類似。

它的構(gòu)造函數(shù)如下:

datetime.datetime(year,month,day[,hour[,minute[,second[,microsecond[,tzinfo]]]]]),

各參數(shù)的含義與date、time的構(gòu)造函數(shù)中的一樣,要注意參數(shù)值的范圍。

「獲取當(dāng)前日期和時間」

>>> from datetime import datetime
>>> now = datetime.now() # 獲取當(dāng)前datetime
>>> print(now)
2019-05-07 16:28:07.198690
>>> print(type(now))
<class 'datetime.datetime'>

timedelta類

timedelta類是用來計(jì)算二個datetime對象的差值的。可以進(jìn)行加減乘除運(yùn)算的,它的實(shí)例化方法和datetime對象很類似 此類中包含如下屬性:

  • (1) days:天數(shù)。

  • (2) microseconds:微秒數(shù)(>=0并且<1秒)。

  • (3) seconds:秒數(shù)(>=0并且<1天)。

兩個date或datetime對象相減就可以返回一個timedelta對象。

import datetime as dt
date1=dt.date(2020,10,28)
timedel=dt.timedelta(days=4)
print('四天后的日期是:', date1+timedel)

四天后的日期是:2020-11-01

看完上述內(nèi)容,你們對Python中time和datetime庫如何使用有進(jìn)一步的了解嗎?如果還想了解更多知識或者相關(guān)內(nèi)容,請關(guān)注億速云行業(yè)資訊頻道,感謝大家的支持。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI