pythonタイムフォーマット変換、秒レベルおよびミリ秒レベルのタイムスタンプ変換
12919 ワード
1.時間フォーマット変換
結果の入力
2.タイムスタンプ
Unixタイムスタンプは精度によって10ビット(秒)、13ビット(ミリ秒)、16ビット(微妙)、19ビット(ナノ秒)です
出力結果:
ミリ秒レベルのタイムスタンプ変換
1.タイムスタンプ:
出力結果:15474550538123
2.タイムスタンプの回転時間:
出力結果:2019-01-14 07:22:18.123000
秒レベルのタイムスタンプ変換
1.日付を秒タイムスタンプに変更
出力結果:1514774430
2.秒タイムスタンプを日付に変更
出力結果:2018-01-13 00:27:10
# -*- coding=utf8 -*-
import datetime
import time
import pytz
utc = "2017-07-28T08:28:47.776Z"
UTC_FORMAT = "%Y-%m-%dT%H:%M:%S.%fZ"
utcTime = datetime.datetime.strptime(utc, UTC_FORMAT)
print(utcTime)
localtime = utcTime + datetime.timedelta(hours=8)
print(localtime)
# UTC 1531411200
def local_stamp_to_utc(local_ts, utc_format='%Y-%m-%dT%H:%MZ'):
local_tz = pytz.timezone('Asia/Chongqing') #
local_format = "%Y-%m-%d %H:%M:%S" # format
time_str = time.strftime(local_format, time.localtime(local_ts)) # , strftime
dt = datetime.datetime.strptime(time_str, local_format) # strptime datetime datetime
local_dt = local_tz.localize(dt, is_dst=None) # , dt.replace(tzinfo=pytz.timezone('Asia/Chongqing'))
utc_dt = local_dt.astimezone(pytz.utc) #astimezone
return utc_dt.strftime(utc_format) #
# utc utc
def utc_stamp_to_utc(timeStamp):
dateArray = datetime.datetime.utcfromtimestamp(timeStamp)
otherStyleTime = dateArray.strftime('%Y-%m-%dT%H:%MZ')
return otherStyleTime
# UTC
def reformat_utc_str(time_tset):
# time_tset = "2019-05-14T06:11:46.000000Z"
dt = datetime.datetime.strptime(time_tset, '%Y-%m-%dT%H:%M:%S.%fZ')
ret = dt.strftime('%Y-%m-%dT%H:%M:%SZ')
return ret
print(local_stamp_to_utc(1557805080))
print(utc_stamp_to_utc(1557805080))
print(reformat_utc_str("2019-05-14T06:11:46.000000Z"))
結果の入力
2017-07-28 08:28:47.776000
2017-07-28 16:28:47.776000
2019-05-14T03:38Z
2019-05-14T03:38Z
2019-05-14T06:11:46Z
2.タイムスタンプ
Unixタイムスタンプは精度によって10ビット(秒)、13ビット(ミリ秒)、16ビット(微妙)、19ビット(ナノ秒)です
import time
import datetime
t = time.time()
print (t) #
print (int(t)) #
print (int(round(t * 1000))) #
print (int(round(t * 1000000))) #
出力結果:
1499825149.257892 #
1499825149 # ,10
1499825149257 # ,13
1499825149257892 # ,16
ミリ秒レベルのタイムスタンプ変換
1.タイムスタンプ:
import time
from datetime import datetime
timestr = '2019-01-14 15:22:18.123'
datetime_obj = datetime.strptime(timestr, "%Y-%m-%d %H:%M:%S.%f")
ret_stamp = int(time.mktime(datetime_obj.timetuple()) * 1000.0 + datetime_obj.microsecond / 1000.0)
print(ret_stamp)
出力結果:15474550538123
2.タイムスタンプの回転時間:
import time
import datetime
timeNum = 1547450538123
timeStamp = float(timeNum)/1000
ret_datetime = datetime.datetime.utcfromtimestamp(timeStamp).strftime("%Y-%m-%d %H:%M:%S.%f")
print ret_datetime
出力結果:2019-01-14 07:22:18.123000
秒レベルのタイムスタンプ変換
1.日付を秒タイムスタンプに変更
dt = '2018-01-01 10:40:30'
ts = int(time.mktime(time.strptime(dt, "%Y-%m-%d %H:%M:%S")))
print (ts)
出力結果:1514774430
2.秒タイムスタンプを日付に変更
ts = 1515774430
dt = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(ts))
print(dt)
出力結果:2018-01-13 00:27:10