This repository was archived by the owner on Jan 8, 2018. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathtimeutils.py
More file actions
53 lines (47 loc) · 1.82 KB
/
timeutils.py
File metadata and controls
53 lines (47 loc) · 1.82 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
import datetime
import pandas as pd
def convert_to_utc(sow, **kwargs):
if 'week' in kwargs:
dt = datetime.datetime(1980,1,6) + datetime.timedelta(weeks=kwargs['week'])
elif 'date' in kwargs:
if isinstance(kwargs['date'], basestring):
d = kwargs['date'].split('-')
if len(d) != 3:
d = kwargs['date'].split('/')
if len(d) != 3:
print 'date not correctly formatted. expect MM-DD-YYYY or MM/DD/YYYY'
return
dt = datetime.datetime(d[2], d[0], d[1])
elif isinstance(kwargs['date'], datetime.datetime):
dt = kwargs['date']
else:
print 'must specify week number or date'
return
if 'utc' in kwargs and kwargs['utc']:
ls_table = [(1980,1,1,1981,7,1),\
(1981,7,1,1982,7,1),\
(1982,7,1,1983,7,1),\
(1983,7,1,1985,7,1),\
(1985,7,1,1988,1,1),\
(1988,1,1,1990,1,1),\
(1990,1,1,1991,1,1),\
(1991,1,1,1992,7,1),\
(1992,7,1,1993,7,1),\
(1993,7,1,1994,7,1),\
(1994,7,1,1996,1,1),\
(1996,1,1,1997,7,1),\
(1997,7,1,1999,1,1),\
(1999,1,1,2006,1,1),\
(2006,1,1,2009,1,1),\
(2009,1,1,2012,7,1),\
(2012,7,1,2015,7,1),\
(2015,7,1,2017,1,1)]
leap_seconds = 0
for entry in ls_table:
if dt >= datetime.datetime(entry[0],entry[1],entry[2]) and dt < datetime.datetime(entry[3],entry[4],entry[5]):
break
else:
leap_seconds = leap_seconds + 1
sow = sow - leap_seconds
dt = dt + datetime.timedelta(seconds=sow)
return dt