62 lines
2.4 KiB
Python
62 lines
2.4 KiB
Python
###################################################################
|
|
# Copyright (c) 2016 by TAOS Technologies, Inc.
|
|
# All rights reserved.
|
|
#
|
|
# This file is proprietary and confidential to TAOS Technologies.
|
|
# No part of this file may be reproduced, stored, transmitted,
|
|
# disclosed or used in any form or by any means other than as
|
|
# expressly provided by the written permission from Jianhui Tao
|
|
#
|
|
###################################################################
|
|
|
|
# -*- coding: utf-8 -*-
|
|
|
|
import time
|
|
from datetime import datetime
|
|
|
|
class GetTime:
|
|
|
|
def get_ms_timestamp(self,ts_str):
|
|
_ts_str = ts_str
|
|
if " " in ts_str:
|
|
p = ts_str.split(" ")[1]
|
|
if len(p) > 15 :
|
|
_ts_str = ts_str[:-3]
|
|
if ':' in _ts_str and '.' in _ts_str:
|
|
timestamp = datetime.strptime(_ts_str, "%Y-%m-%d %H:%M:%S.%f")
|
|
date_time = int(int(time.mktime(timestamp.timetuple()))*1000 + timestamp.microsecond/1000)
|
|
elif ':' in _ts_str and '.' not in _ts_str:
|
|
timestamp = datetime.strptime(_ts_str, "%Y-%m-%d %H:%M:%S")
|
|
date_time = int(int(time.mktime(timestamp.timetuple()))*1000 + timestamp.microsecond/1000)
|
|
else:
|
|
timestamp = datetime.strptime(_ts_str, "%Y-%m-%d")
|
|
date_time = int(int(time.mktime(timestamp.timetuple()))*1000 + timestamp.microsecond/1000)
|
|
return date_time
|
|
def get_us_timestamp(self,ts_str):
|
|
_ts = self.get_ms_timestamp(ts_str) * 1000
|
|
if " " in ts_str:
|
|
p = ts_str.split(" ")[1]
|
|
if len(p) > 12:
|
|
us_ts = p[12:15]
|
|
_ts += int(us_ts)
|
|
return _ts
|
|
def get_ns_timestamp(self,ts_str):
|
|
_ts = self.get_us_timestamp(ts_str) *1000
|
|
if " " in ts_str:
|
|
p = ts_str.split(" ")[1]
|
|
if len(p) > 15:
|
|
us_ts = p[15:]
|
|
_ts += int(us_ts)
|
|
return _ts
|
|
def time_transform(self,ts_str,precision):
|
|
date_time = []
|
|
if precision == 'ms':
|
|
for i in ts_str:
|
|
date_time.append(self.get_ms_timestamp(i))
|
|
elif precision == 'us':
|
|
for i in ts_str:
|
|
date_time.append(self.get_us_timestamp(i))
|
|
elif precision == 'ns':
|
|
for i in ts_str:
|
|
date_time.append(self.get_ns_timestamp(i))
|
|
return date_time |