in aliyun/log/util.py [0:0]
def parse_timestamp(tm):
if isinstance(tm, (int, float)) or \
(isinstance(tm, (six.text_type, six.binary_type)) and tm.isdigit()):
return int(tm)
try:
dt = parser.parse(tm)
except ValueError as ex:
try:
# try to use dateparser to parse the format.
from dateparser import parse
try:
dt = parse(tm)
if dt is None:
raise ex
except Exception as e:
logger.error("fail to parse date: {0}, detail: {1}".format(tm, e))
raise e
except ImportError as ex2:
logger.exception("import error: {}".format(ex2))
raise ex
if sys.version_info[:2] == (2, 6):
if dt.tzinfo is None:
return int(_get_total_seconds(dt - datetime(1970, 1, 1)))
return int(_get_total_seconds(dt - datetime(1970, 1, 1, tzinfo=utc)))
elif six.PY2:
if dt.tzinfo is None:
return int((dt - datetime(1970, 1, 1)).total_seconds())
return int((dt - datetime(1970, 1, 1, tzinfo=utc)).total_seconds())
else:
return int(dt.timestamp())