Python時間戳與時間的相互轉換

2021-10-04 02:38:34 字數 4577 閱讀 9929

在用python處理資料時,可能有時候會需要將時間轉換成時間戳,或者說將時間戳轉換成時間,這裡分享一下時間戳與時間的相互轉換的方法。在python裡面處理時間相關問題,基本上用的包就是time和datetime兩個,這裡也是用這兩個包實現時間戳和時間的相互轉換。

時間轉換成時間戳

datetime物件轉換成字串

字串轉換成datetime物件

不同型別時間的轉換

時間字段說明

時間戳轉換成時間

python time strftime() 函式接收以時間元組,並返回以可讀字串表示的當地時間,格式由引數format決定。

strftime()方法語法:

time.strftime(format[, t])      #format -- 格式字串。t -- 可選的引數t是乙個struct_time物件。
python time strptime() 函式根據指定的格式把乙個時間字串解析為時間元組。

strptime()方法語法:

time.strptime(string[, format])    #string -- 時間字串。 format -- 格式化字串。
import time

date = '03/20/2020' #"2023年3月20日"

date1=time.strptime(date,'%m/%d/%y') #%y年%m月%d日

d2 = time.strftime("%y-%m-%d",date1)

print(date1)

print(d2)

時間轉換成時間戳
import datetime

import time

time1 = datetime.datetime(2020,3,17,6.8,8,8)

time= time.mktime(time1.timeuple())

datetime物件轉換成字串

-利用str或者strftime方法可以將datetime物件轉換成字串:

from datetime import datetime # 匯入datetime模組

stamp = datetime(2018, 12, 6) # 生成乙個datetime物件

str(stamp) # 轉換 #結果顯示:『2018-12-06 00:00:00』

-使用strftime函式,需要傳入乙個格式化字串:

stamp.strftime(』%y-%m-%d』) # 結果顯示:『2018-12-06』

strftime雖然有些麻煩,但是用途很多,比如可以輸出當前日期是星期幾:

stamp.strftime("%w") # 結果顯示:『6』,表示當前日期為星期六

字串轉換成datetime物件

datetime.strptime可以用這些格式化編碼將字串轉換成日期:

value = 『2018-12-06』

datetime.strptime(value, 『%y/%m/%d』)

結果顯示:

datetime.datetime(2018, 12, 6, 0, 0)

不同型別時間的轉換

1.date: march 13, 2020

char ='\n                     original release date: march 13, 2020\n'

com = re.compile(r':(\s*[\s]+\s\d+,\s\d+)') #( *[\s]+)

char3 = re.findall(com, char)

time2 = char3.replace(" |,", "")

print

# print()(time3)

time_format2 = time.time.strptime(time2, '%b%d%y')

2.wed, 25 mar 2020 08:00:28 +0000
date1 = 'wed, 25 mar 2020 08:00:28 +0000'

date2 = time.strptime(date1,"%a, %d %b %y %h:%m:%s +0000")

date3 = time.strftime("%y-%m-%d",date2)

# com = re.compile(r'\d-\d-\d') # date1 = re.compile(r'd[-|/|.]\d[-|/|.]\d',date) #2020-2-23或者2020/2/23

# char3 = re.findall(com, char)

4.2020-03-20 19:50:38

date3 ='2020-03-20 19:50:38'

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

date5 = time.strftime("%y-%m-%d",date4)

5.2020-03-11t17:15:07+00:00
format1="%y-%m-%dt%h:%m:%s+00:00"

format2="%y-%m-%d %h:%m:%s"

t1 = '2020-03-11t17:15:07+00:00'

t = time.strptime(t1, format1)

t2 = time.strftime(format2, t)

print(t2)

6.mar 14, 2020
time1 ='mar 14, 2020'

time2 = time1.replace(" ", "")

time3 = time2.replace(",", "")

# print()(time3)

time_format2 = time.strptime(time3, '%b%d%y')

item['time'] = time.strftime("%y-%m-%d",time_format2)

7.thursday, march 26, 2020
date = 'thursday, march 26, 2020'

date2 = time.strptime(date, "%a, %b %d, %y")

date3 = time.strftime("%y-%m-%d", date2)

print(date3)

8.05月18, 2020
date='05月18, 2020'

time_format2 = time.strptime(date, '%m月%d, %y')

date2 = time.strftime("%y-%m-%d", time_format2)

2020-03-07t08:12:44.274z
import time

joined =

'2020-03-07t08:12:44.274z'

data = time.

strptime

(joined,

'%y-%m-%dt%h:%m:%s.%fz'

)join_time = time.

strftime

("%y-%m-%d"

,data)

print

(join_time)

獲取前一天時間
time1= 『mar 14

,202012:

00:00 am』

time2 = datetime.datetime.

strptime

(time1,

'%b %d, %y %h:%m:%s am'

)time3 = time2 - datetime.

timedelta

(days=

1) #獲取當前時間的前一天時間

timestamp = time3.

strftime

("%y-%m-%d"

)

python中時間日期格式化符號:

符號含義

%y兩位數的年份表示(00-99)

%y四位數的年份表示(000-9999)

%m月份(01-12)

%d月內中的一天(0-31)

%h24小時制小時數(0-23)

%i2小時制小時數(01-12)

%m分鐘數(00=59)

%s秒(00-59)

%a本地簡化星期名稱

%a本地完整星期名稱

%b本地簡化的月份名稱

%b本地完整的月份名稱

%c本地相應的日期表示和時間表示

%j年內的一天(001-366)

%p本地a.m.或p.m.的等價符

%u一年中的星期數(00-53)星期天為星期的開始

%w星期(0-6),星期天為星期的開始

%w一年中的星期數(00-53)星期一為星期的開始

%x本地相應的日期表示

%x本地相應的時間表示

%z當前時區的名稱

%%%號本身

時間與時間戳相互轉化

var strtime 2018 06 23 var date new date strtime.replace g,var time1 date.gettime 2018 06 23的時間戳 有三種方式獲取,三種方式的區別 time1 date.gettime time2 date.valueof...

python正常時間和unix時間戳相互轉換的方法

python正常時間和unix時間戳相互轉換的方法 本文例項講述了python 例如 1332888820 格式轉換成 2012 03 28 06 53 40的形式 coding utf 8 import time def timestamp datetime value format y m d ...

python中時間字串與時間戳的相互轉換

時間字串轉換為時間戳 python 純文字檢視 複製 12 3 4 5 6 7 8 時間字串轉換為時間戳 a 2013 10 10 23 40 00 將其轉換為時間陣列 importtime timearray time.strptime a,y m d h m s 轉換為時間戳 timestamp...