From bf2d101d63525ecb260b2dcf21c9cd284b4733ab Mon Sep 17 00:00:00 2001 From: Richard Ferguson Date: Fri, 15 May 2020 10:51:00 +0000 Subject: [PATCH] more time fixes --- arElement.py | 19 ++++++++++++++++--- arNetSked.py | 8 +++++--- 2 files changed, 21 insertions(+), 6 deletions(-) diff --git a/arElement.py b/arElement.py index d657e39..101266c 100644 --- a/arElement.py +++ b/arElement.py @@ -26,7 +26,8 @@ import threading class arElement(): def __init__(self): self._arName = "%s" % (self.__class__.__name__) - self._arTz = get_localzone() + self._arLtz = get_localzone() + self._arTz = self._arLtz self._arPrintLock = threading.Lock() @property @@ -46,12 +47,24 @@ class arElement(): self._arTz = v def arGetLocalTime(self): - return self._arTz.localize(dt.datetime.now()) + ldt = self._arLtz.localize(dt.datetime.now()) + return ldt.astimezone(self._arTz) def arGetUTCTime(self): - return pytz.utc.localize(dt.datetime.utcnow()) + ldt = self._arLtz.localize(dt.datetime.now()) + return ldt.astimezone(pytz.utc) def arPrint(self, message): self._arPrintLock.acquire() print("[%s] %s" % (self._arName, message)) self._arPrintLock.release() + + +if __name__ == "__main__": + e = arElement() + print(e.arGetLocalTime().strftime("%c")) + print(e.arGetUTCTime().strftime("%c")) + e.arTz = pytz.timezone("US/Eastern") + print(e.arGetLocalTime().strftime("%c")) + print(e.arGetUTCTime().strftime("%c")) + diff --git a/arNetSked.py b/arNetSked.py index 261fed5..06c4af4 100755 --- a/arNetSked.py +++ b/arNetSked.py @@ -41,7 +41,7 @@ def td2min(td): return round(res) class arNet(arElement, threading.Thread): - def __init__(self, call, txCB): + def __init__(self, call, txCB, tz = None): arElement.__init__(self) self._day = 0 # sunday @@ -58,6 +58,8 @@ class arNet(arElement, threading.Thread): self._lon = "00000.00W" # longitude self._comment = "" # comment + if tz is not None: + self.arTz = tz self._dt = self.arGetLocalTime() self._stopped = threading.Event() @@ -283,6 +285,7 @@ class arNet(arElement, threading.Thread): # initialize _dt to next future net time # unless net is currently active + self._dt = self.arGetLocalTime() dayshift = self._day - self._dt.weekday() if dayshift < 0: dayshift += 7 @@ -522,7 +525,7 @@ class arNetSked(arElement): # print (line) line = line.ljust(75) - objn = arNet(self.call, self.tranPacketCB) + objn = arNet(self.call, self.tranPacketCB, self.arTz) opts = line.split() try: objn.day = opts[0] @@ -547,7 +550,6 @@ class arNetSked(arElement): break self._objlist.append(objn) - objn.arTz = self.arTz objn.initTime() objn.start()