Python時間,字串,時間戳之間轉換

2021-09-19 06:56:50 字數 3317 閱讀 6680

1.將字串的時間轉換為時間戳

import time

a = "2018-04-27 17:49:00"

#轉化為陣列

timearray = time.strptime(a, "%y-%m-%d %h:%m:%s")

#轉換為時間戳

timestamp = int(time.mktime(timearray))#1524822540

2.字串格式更改

如a = "2018-04-27 17:49:00",想改為 a = "2013/04/27 17:49:00"

方法:先轉換為時間陣列,然後轉換為其他格式

import time

a = "2018-04-27 17:49:00"

timearray = time.strptime(a, "%y-%m-%d %h:%m:%s")

otherstyletime = time.strftime("%y/%m/%d %h:%m:%s", timearray)#'2018/04/27 17:49:00'

3.時間戳轉換為指定格式日期:

方法一:

利用localtime()轉換為時間陣列,然後格式化為需要的格式,如

import time

timestamp = 1524822540

timearray = time.localtime(timestamp)

otherstyletime = time.strftime("%y-%m-%d %h:%m:%s", timearray)

otherstyletime == "2018-04-27 17:49:00"

方法二:

import datetime

timestamp = 1524822540

datearray = datetime.datetime.utcfromtimestamp(timestamp)

otherstyletime = datearray.strftime("%y-%m-%d %h:%m:%s")

otherstyletime == "2018-04-27 17:49:00"

4.獲取當前時間並轉換為指定日期格式

方法一:

import time

#獲得當前時間時間戳

now = int(time.time())  #這是時間戳

#轉換為其他日期格式,如:"%y-%m-%d %h:%m:%s"

timearray = time.localtime(now)

otherstyletime = time.strftime("%y-%m-%d %h:%m:%s", timearray)#2018-04-27 18:04:24

方法二:

import datetime

#獲得當前時間

now = datetime.datetime.now()  #這是時間陣列格式

#轉換為指定的格式:

otherstyletime = now.strftime("%y-%m-%d %h:%m:%s")

5.獲得三天前的時間

方法:import time

import datetime

#先獲得時間陣列格式的日期

threedayago = (datetime.datetime.now() - datetime.timedelta(days = 3))

#轉換為時間戳:

timestamp = int(time.mktime(threedayago.timetuple()))

#轉換為其他字串格式:

otherstyletime = threedayago.strftime("%y-%m-%d %h:%m:%s")#2018-04-24 18:06:37

#注:timedelta()的引數有:days,hours,seconds,microseconds

import datetime

import time

timestamp = 1524822540

#先轉換為datetime

datearray = datetime.datetime.utcfromtimestamp(timestamp)

threedayago = datearray - datetime.timedelta(days = 3)

以上是原作者的寫作,下面是我個人的補充

a = '2020-09-01 09:00:00'
a = datetime.strptime(a,"%y-%m-%d %h:%m:%s")  字串轉時間
a = datetime.strftime(a,"%y-%m-%d %h:%m:%s")  時間轉字串
datetime 和 time是不一樣的,time.strptime 轉化為時間後是元祖格式的時間,如:

而datetime.strptime 是「時間格式」的時間,如:2020-09-01 09:00:00 ,

datetime轉出來的才可以進行  timedelta(hours=2) 這樣的運算!

需要注意的是datetime 轉換的兩種方法都是變數在前,"%y-%m-%d %h:%m:%s" 在後,

而 time 轉換的話 時間轉字串 strftime 方法要求變數在後面。

datetime轉化出來的 時間格式,不能直接進行  int( time.mktime(a))  * 1000 轉成 時間戳,而是需要先 通過 datetime.strftime 轉成 字串,再通過  time.strptime 方法轉成 time格式(元祖)的時間,才能進行時間戳的轉換,

例子:

a = '2020-09-01 09:00:00'             # 字串

a = datetime.strptime(a,"%y-%m-%d %h:%m:%s") # 轉為datetime的時間型別

這時如果要轉換為時間戳,那麼:

a = datetime.strftime(a,"%y-%m-%d %h:%m:%s")   # 轉為 字串
a = time.strptime(a,"%y-%m-%d %h:%m:%s")      # 轉為 time 格式的時間型別 (元祖)
# a = time.strftime("%y-%m-%d %h:%m:%s",a)       #ps 跟上面的strptime 對比一下引數順序
a = int(time.mktime(a)) * 1000        # 轉為時間戳 :1598858859691

Python 時間戳 字串 時間 轉換

平時對於時間的處理經常使用python的time和datetime模組,但是用來多次還是對其中的時間戳,字串和時間轉換應用的不太熟練,時間長了不使用就理不清楚,為此整理成文。時間戳,時間,字串之間的關係整理如下圖 時間戳 time.time 返回當前時間戳 seconds time.time tim...

python 字串時間轉成時間戳

示例一import time t 2020 10 31 12 44 27 將字串形式的時間轉換為時間元組 t time.strptime t,y m d h m s 將時間元組轉換為時間戳 t time.mktime t 1604119467.0 print t 示例二import time t m...

python 時間戳 時間字串轉換

使用time和datetime包進行轉換。環境python2.7.13。gmt 格林威治時間,bjt 北京時間。時間戳轉為時間字串 coding utf 8 時間戳 gmt 轉化為字串 bjt import time import datetime timestamp 1522165684 時間戳是...