From 2f9b995bc43a62419cca370be4e7d19d265c4f7b Mon Sep 17 00:00:00 2001 From: madsmpedersen <m@madsp.dk> Date: Tue, 2 Feb 2016 13:09:01 +0100 Subject: [PATCH] support datetime_lists in to_unix --- wetb/gtsdf/tests/test_unix_time.py | 23 +++++++++++++++++------ wetb/gtsdf/unix_time.py | 11 +++++++---- 2 files changed, 24 insertions(+), 10 deletions(-) diff --git a/wetb/gtsdf/tests/test_unix_time.py b/wetb/gtsdf/tests/test_unix_time.py index 3a5987ba..ea65ad80 100644 --- a/wetb/gtsdf/tests/test_unix_time.py +++ b/wetb/gtsdf/tests/test_unix_time.py @@ -7,17 +7,28 @@ import unittest import numpy as np import datetime from wetb.utils.timing import print_time -from wetb.gtsdf.unix_time import to_unix +from wetb.gtsdf.unix_time import to_unix, from_unix class TestUnixTime(unittest.TestCase): - #@print_time - def r(self, dt): - return [to_unix(dt) for dt in dt] def test_to_unix(self): - dt = [datetime.datetime(2000, 1, 1, 12, s % 60) for s in np.arange(1000000)] - self.r(dt) + self.assertEqual(to_unix(datetime.datetime(2016, 2, 2, 13, 6, 25)), 1454418385) + self.assertNotEqual(to_unix(datetime.datetime(2016, 2, 2, 13, 6, 26)), 1454418385) + + def test_from_unix(self): + self.assertEqual(from_unix(1454418385), datetime.datetime(2016, 2, 2, 13, 6, 25)) + self.assertNotEqual(from_unix(1454418385), datetime.datetime(2016, 2, 2, 13, 6, 26)) + + + +# @print_time +# def r(self, dt): +# return [to_unix(dt) for dt in dt] + +# def test_to_unix_time(self): +# dt = [datetime.datetime(2000, 1, 1, 12, s % 60) for s in np.arange(1000000)] +# self.r(dt) if __name__ == "__main__": #import sys;sys.argv = ['', 'Test.testName'] diff --git a/wetb/gtsdf/unix_time.py b/wetb/gtsdf/unix_time.py index e01d816e..f8f10368 100644 --- a/wetb/gtsdf/unix_time.py +++ b/wetb/gtsdf/unix_time.py @@ -2,11 +2,14 @@ from datetime import datetime, date import numpy as np timestamp0 = datetime.utcfromtimestamp(0) -def to_unix(dateTime): - #return dateTime.timestamp() + 3600 - return (dateTime - timestamp0).total_seconds() - #return (dateTime - datetime.utcfromtimestamp(0)).total_seconds() +def to_unix(dateTime): + try: + return (dateTime - timestamp0).total_seconds() + except: + if hasattr(dateTime, "__len__"): + return [(dt - timestamp0).total_seconds() for dt in dateTime] + raise def from_unix_old(sec): if np.isnan(sec): -- GitLab