PageRenderTime 24ms CodeModel.GetById 17ms app.highlight 4ms RepoModel.GetById 1ms app.codeStats 1ms

/gdata/tlslite/utils/dateFuncs.py

http://radioappz.googlecode.com/
Python | 75 lines | 51 code | 18 blank | 6 comment | 1 complexity | 731dd000a213d23e57042482a4fbc2bd MD5 | raw file
 1
 2import os
 3
 4#Functions for manipulating datetime objects
 5#CCYY-MM-DDThh:mm:ssZ
 6def parseDateClass(s):
 7    year, month, day = s.split("-")
 8    day, tail = day[:2], day[2:]
 9    hour, minute, second = tail[1:].split(":")
10    second = second[:2]
11    year, month, day = int(year), int(month), int(day)
12    hour, minute, second = int(hour), int(minute), int(second)
13    return createDateClass(year, month, day, hour, minute, second)
14
15
16if os.name != "java":
17    from datetime import datetime, timedelta
18
19    #Helper functions for working with a date/time class
20    def createDateClass(year, month, day, hour, minute, second):
21        return datetime(year, month, day, hour, minute, second)
22
23    def printDateClass(d):
24        #Split off fractional seconds, append 'Z'
25        return d.isoformat().split(".")[0]+"Z"
26
27    def getNow():
28        return datetime.utcnow()
29
30    def getHoursFromNow(hours):
31        return datetime.utcnow() + timedelta(hours=hours)
32
33    def getMinutesFromNow(minutes):
34        return datetime.utcnow() + timedelta(minutes=minutes)
35
36    def isDateClassExpired(d):
37        return d < datetime.utcnow()
38
39    def isDateClassBefore(d1, d2):
40        return d1 < d2
41
42else:
43    #Jython 2.1 is missing lots of python 2.3 stuff,
44    #which we have to emulate here:
45    import java
46    import jarray
47
48    def createDateClass(year, month, day, hour, minute, second):
49        c = java.util.Calendar.getInstance()
50        c.setTimeZone(java.util.TimeZone.getTimeZone("UTC"))
51        c.set(year, month-1, day, hour, minute, second)
52        return c
53
54    def printDateClass(d):
55        return "%04d-%02d-%02dT%02d:%02d:%02dZ" % \
56        (d.get(d.YEAR), d.get(d.MONTH)+1, d.get(d.DATE), \
57        d.get(d.HOUR_OF_DAY), d.get(d.MINUTE), d.get(d.SECOND))
58
59    def getNow():
60        c = java.util.Calendar.getInstance()
61        c.setTimeZone(java.util.TimeZone.getTimeZone("UTC"))
62        c.get(c.HOUR) #force refresh?
63        return c
64
65    def getHoursFromNow(hours):
66        d = getNow()
67        d.add(d.HOUR, hours)
68        return d
69
70    def isDateClassExpired(d):
71        n = getNow()
72        return d.before(n)
73
74    def isDateClassBefore(d1, d2):
75        return d1.before(d2)