File tree Expand file tree Collapse file tree 2 files changed +24
-3
lines changed Expand file tree Collapse file tree 2 files changed +24
-3
lines changed Original file line number Diff line number Diff line change 11import calendar
22import datetime
33import re
4+ import os
45import warnings
56from csep .utils .constants import SECONDS_PER_ASTRONOMICAL_YEAR , SECONDS_PER_DAY
67
@@ -17,8 +18,25 @@ def epoch_time_to_utc_datetime(epoch_time_milli):
1718 """
1819 if epoch_time_milli is None :
1920 return epoch_time_milli
21+
2022 epoch_time = epoch_time_milli / 1000
21- dt = datetime .datetime .fromtimestamp (epoch_time , datetime .timezone .utc )
23+
24+ if os .name == "nt" and epoch_time < 0 :
25+
26+ if isinstance (epoch_time , int ):
27+ sec = epoch_time
28+ milli_sec = 0
29+ else :
30+ whole , frac = str (epoch_time ).split ("." )
31+ sec = int (whole )
32+ milli_sec = int (frac ) * - 1
33+ dt = datetime .datetime (1970 , 1 , 1 ) + datetime .timedelta (
34+ seconds = sec ,
35+ milliseconds = milli_sec
36+ )
37+ else :
38+ dt = datetime .datetime .fromtimestamp (epoch_time , datetime .timezone .utc )
39+
2240 return dt
2341
2442def datetime_to_utc_epoch (dt ):
Original file line number Diff line number Diff line change @@ -50,5 +50,8 @@ def test_decimal_year_epoch(self):
5050 test_year = decimal_year (epoch_time_to_utc_datetime (epoch ))
5151 self .assertAlmostEqual (year , test_year )
5252
53-
54-
53+ def test_negative_epoch (self ):
54+ year = 1969.12315213421321321
55+ epoch = decimal_year_to_utc_epoch (year )
56+ test_year = decimal_year (epoch_time_to_utc_datetime (epoch ))
57+ self .assertAlmostEqual (year , test_year )
You can’t perform that action at this time.
0 commit comments