程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

python 時間轉換(時間戳、格式化時間)

編輯:Python

背景故事

在日常工作中經常會遇到 python 時間格式轉換問題,如時間戳轉換為格式化時間、格式化時間轉換為時間戳,這裡做個總結。

在總結之前我們需要先弄清楚一個關鍵點:時區

  • 時區:我們通常使用的時區一般分為 UTC時間和 UTC+8 (東八)時間,東八 CT — 中國標准時間 簡單理解為中國時間,UTC WET — 歐洲西部時區,GMT - 格林威治標准時間,簡單理解為英國時間。東八時間比 UTC 時間快八小時。

  • 世界時區圖

格式化時間轉化為時間戳

獲取本地(東八)時間戳

import time
import pytz
import datetime
# 返回 東八 時間戳
def get_shanghai_timestamp(date_time):
time_zone = pytz.timezone('Asia/Shanghai')
timeArray = datetime.datetime.strptime(date_time, "%Y-%m-%d %H:%M:%S")
local_dt = timeArray.astimezone(time_zone)
print('>>>', int(time.mktime(local_dt.timetuple())))
get_timestamp('2018-07-13 16:00:00')

獲取 UTC 時間戳

import time
import pytz
import datetime
# 返回 utc 時間戳
def get_utc_timestamp(utc_time_str, utc_format=r'%Y-%m-%d %H:%M:%S'):
local_tz = pytz.timezone('UTC') # 定義本地時區(東八時間比 utc 時間快8小時)
utc_dt = datetime.datetime.strptime(utc_time_str, utc_format) #將世界時間的格式轉化為datetime.datetime格式
local_dt = utc_dt.astimezone(local_tz) #想將datetime格式添加上世界時區,然後astimezone切換時區:世界時區==>本地時區
return int(time.mktime(local_dt.timetuple())) #返回當地時間戳
print(get_utc_timestamp('2018-07-13 16:00:00', utc_format='%Y-%m-%d %H:%M:%S'))

時間戳轉換為格式化時間

返回東八格式化時間

# 方式一:
import time
import pytz
import datetime
def get_local_format_time(timestamp):
local_time=time.localtime()
format_time=time.strftime("%Y-%m-%d %H:%M:%S", local_time)
return format_time
get_local_format_time(1529112900)
# 方式二:
def local_to_utc(local_ts, time_format=r'%Y-%m-%d %H:%M:%S'):
time_zone = pytz.timezone('Asia/Shanghai')
time_str = time.strftime(time_format, time.localtime(local_ts)) #首先將本地時間戳轉化為時間元組,用strftime格式化成字符串
dt = datetime.datetime.strptime(time_str, time_format) #將字符串用strptime 轉為為datetime中 datetime格式
utc_dt = dt.astimezone(time_zone) # astimezone切換為 utc 時區
return utc_dt.strftime(time_format) #返回 utc 格式化時間
get_local_format_time(1529112900)

返回 UTC 格式化時間

def get_utc_format_time(local_ts, time_format=r'%Y-%m-%d %H:%M:%S'):
time_str = time.strftime(time_format, time.localtime(local_ts)) #首先將本地時間戳轉化為時間元組,用strftime格式化成字符串
dt = datetime.datetime.strptime(time_str, time_format) #將字符串用strptime 轉為為datetime中 datetime格式
utc_dt = dt.astimezone(pytz.utc) # astimezone切換為 utc 時區
return utc_dt.strftime(time_format) #返回 utc 格式化時間
get_utc_format_time(1529112900)

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved