Python時間変換(タイムスタンプ、フォーマット時間)
2940 ワード
バックグラウンドストーリー
日常の仕事でpythonタイムフォーマット変換の問題によく遭遇します.例えば、タイムスタンプをフォーマット時間に変換したり、フォーマット時間をタイムスタンプに変換したりします.ここでまとめます.
まとめる前に、タイムゾーンのキーを明らかにする必要があります.タイムゾーン:私たちが通常使用しているタイムゾーンは一般的に 世界タイムゾーン図 ここに画像の説明を挿入します
時間をタイムスタンプに変換
ローカル(東八)タイムスタンプの取得
UTCタイムスタンプの取得
タイムスタンプをフォーマット時間に変換
東八フォーマット時間に戻る
UTCフォーマット時間を返す
日常の仕事でpythonタイムフォーマット変換の問題によく遭遇します.例えば、タイムスタンプをフォーマット時間に変換したり、フォーマット時間をタイムスタンプに変換したりします.ここでまとめます.
まとめる前に、タイムゾーンのキーを明らかにする必要があります.
UTC
時間とUTC+8 ( )
時間に分けられ、東八CT-中国標準時間は簡単に中国時間と理解され、UTC WET-ヨーロッパ西部タイムゾーン、GMT-グリニッジ標準時間、簡単にイギリス時間と理解されています.東8時間はUTC時間より8時間速い.時間をタイムスタンプに変換
ローカル(東八)タイムスタンプの取得
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)