1. 程式人生 > 實用技巧 >Python獲取前幾天的日期轉成固定的格式,Python時間、日期、時間戳的轉換

Python獲取前幾天的日期轉成固定的格式,Python時間、日期、時間戳的轉換

1、str與datetime.datetime型別之間的切換,如下所示:

>>> stime = "2020-05-06"
>>> type(stime)
<class 'str'>
>>> dt = datetime.strptime(stime,"%Y-%m-%d")
>>> type(dt)
<class 'datetime.datetime'>
>>> strtime = dt.strftime("%Y-%m-%d")
>>> type(strtime)
<class
'str'>

str轉換成datetime.datetime型別:datetime.strptime()函式。將str型別stime轉換成datetime.datetime型別。

datetime.datetime型別轉化成str:dt.strftime().將原本是datetime.datetime型別的資料轉換成str型別。

相互為datetime.datetime型別的資料才能進行加減等操作,

應用:

2,獲取8天之前的資料

程式碼如下:

import time
import datetime
 
today = time.strftime("%Y-%m-%d", time.localtime())  /獲取當前時間並轉換成固定格式
week_ago_time 
= (datetime.datetime.now() - datetime.timedelta(days=8)).strftime("%Y-%m-%d") /獲取8天前的日期

3,獲取固定日期的前後n天的資料

先將固定日期轉化成'datetime.datetime'格式的,因為'datetime.datetime.now()'就是這種格式的;然後想上面一樣做減法就可以了、

這裡用到的函式是datetime.datetime庫的strptime(),程式碼如下所示:

import time
import datetime 
from datetime import datetime as dtime
dt 
= dtime.strptime("2019-07-07", "%Y-%m-%d") week_ago_time = ( dt - datetime.timedelta(days=8)).strftime("%Y-%m-%d")

注意:from datetime import datetime as dtime 將庫的名字做個替換不然會跟其父庫datetime衝突

輸出為:

>>> print week_ago_time
2019-06-29

3,計算兩個日期的相差的天數

>>> day1 = "2020-05-06"
>>> day2 = "2020-05-01"
>>> day1_dt = datetime.strptime(day1,"%Y-%m-%d")
>>> day2_dt = datetime.strptime(day2,"%Y-%m-%d")
>>> (day1_dt-day2_dt).days
5

先將兩個str型別的日期轉換成datetime型別;然後作減法,其days即相差天數。

參考:https://blog.csdn.net/w417950004/article/details/92848984

python中時間、日期、時間戳的轉換

1.簡介

在編寫程式碼時,往往涉及時間、日期、時間戳的相互轉換。

2.示例

# 引入模組
import time, datetime

2.1 str型別的日期轉換為時間戳

# 字元型別的時間
tss1 = '2013-10-10 23:40:00'
# 轉為時間陣列
timeArray = time.strptime(tss1, "%Y-%m-%d %H:%M:%S")
print timeArray
# timeArray可以呼叫tm_year等
print timeArray.tm_year   # 2013
# 轉為時間戳
timeStamp = int(time.mktime(timeArray))
print timeStamp  # 1381419600


# 結果如下
time.struct_time(tm_year=2013, tm_mon=10, tm_mday=10, tm_hour=23, tm_min=40, tm_sec=0, tm_wday=3, tm_yday=283, tm_isdst=-1)
2013
1381419600

2.2 更改str型別日期的顯示格式

tss2 = "2013-10-10 23:40:00"
# 轉為陣列
timeArray = time.strptime(tss2, "%Y-%m-%d %H:%M:%S")
# 轉為其它顯示格式
otherStyleTime = time.strftime("%Y/%m/%d %H:%M:%S", timeArray)
print otherStyleTime  # 2013/10/10 23:40:00

tss3 = "2013/10/10 23:40:00"
timeArray = time.strptime(tss3, "%Y/%m/%d %H:%M:%S")
otherStyleTime = time.strftime("%Y-%m-%d %H:%M:%S", timeArray)
print otherStyleTime  # 2013-10-10 23:40:00

2.3 時間戳轉換為指定格式的日期

# 使用time
timeStamp = 1381419600
timeArray = time.localtime(timeStamp)
otherStyleTime = time.strftime("%Y--%m--%d %H:%M:%S", timeArray)
print(otherStyleTime)   # 2013--10--10 23:40:00
# 使用datetime
timeStamp = 1381419600
dateArray = datetime.datetime.fromtimestamp(timeStamp)
otherStyleTime = dateArray.strftime("%Y--%m--%d %H:%M:%S")
print(otherStyleTime)   # 2013--10--10 23:40:00
# 使用datetime,指定utc時間,相差8小時
timeStamp = 1381419600
dateArray = datetime.datetime.utcfromtimestamp(timeStamp)
otherStyleTime = dateArray.strftime("%Y--%m--%d %H:%M:%S")
print(otherStyleTime)   # 2013--10--10 15:40:00

2.4 獲取當前時間並且用指定格式顯示

# time獲取當前時間戳
now = int(time.time())     # 1533952277
timeArray = time.localtime(now)
print timeArray
otherStyleTime = time.strftime("%Y--%m--%d %H:%M:%S", timeArray)
print otherStyleTime

# 結果如下
time.struct_time(tm_year=2018, tm_mon=8, tm_mday=11, tm_hour=9, tm_min=51, tm_sec=17, tm_wday=5, tm_yday=223, tm_isdst=0)
2018--08--11 09:51:17


# datetime獲取當前時間,陣列格式
now = datetime.datetime.now()
print now
otherStyleTime = now.strftime("%Y--%m--%d %H:%M:%S")
print otherStyleTime

# 結果如下:
2018-08-11 09:51:17.362986
2018--08--11 09:51:17

參考:https://www.cnblogs.com/jfl-xx/p/8024596.html