76 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			76 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
 | 
						|
import os
 | 
						|
 | 
						|
#Functions for manipulating datetime objects
 | 
						|
#CCYY-MM-DDThh:mm:ssZ
 | 
						|
def parseDateClass(s):
 | 
						|
    year, month, day = s.split("-")
 | 
						|
    day, tail = day[:2], day[2:]
 | 
						|
    hour, minute, second = tail[1:].split(":")
 | 
						|
    second = second[:2]
 | 
						|
    year, month, day = int(year), int(month), int(day)
 | 
						|
    hour, minute, second = int(hour), int(minute), int(second)
 | 
						|
    return createDateClass(year, month, day, hour, minute, second)
 | 
						|
 | 
						|
 | 
						|
if os.name != "java":
 | 
						|
    from datetime import datetime, timedelta
 | 
						|
 | 
						|
    #Helper functions for working with a date/time class
 | 
						|
    def createDateClass(year, month, day, hour, minute, second):
 | 
						|
        return datetime(year, month, day, hour, minute, second)
 | 
						|
 | 
						|
    def printDateClass(d):
 | 
						|
        #Split off fractional seconds, append 'Z'
 | 
						|
        return d.isoformat().split(".")[0]+"Z"
 | 
						|
 | 
						|
    def getNow():
 | 
						|
        return datetime.utcnow()
 | 
						|
 | 
						|
    def getHoursFromNow(hours):
 | 
						|
        return datetime.utcnow() + timedelta(hours=hours)
 | 
						|
 | 
						|
    def getMinutesFromNow(minutes):
 | 
						|
        return datetime.utcnow() + timedelta(minutes=minutes)
 | 
						|
 | 
						|
    def isDateClassExpired(d):
 | 
						|
        return d < datetime.utcnow()
 | 
						|
 | 
						|
    def isDateClassBefore(d1, d2):
 | 
						|
        return d1 < d2
 | 
						|
 | 
						|
else:
 | 
						|
    #Jython 2.1 is missing lots of python 2.3 stuff,
 | 
						|
    #which we have to emulate here:
 | 
						|
    import java
 | 
						|
    import jarray
 | 
						|
 | 
						|
    def createDateClass(year, month, day, hour, minute, second):
 | 
						|
        c = java.util.Calendar.getInstance()
 | 
						|
        c.setTimeZone(java.util.TimeZone.getTimeZone("UTC"))
 | 
						|
        c.set(year, month-1, day, hour, minute, second)
 | 
						|
        return c
 | 
						|
 | 
						|
    def printDateClass(d):
 | 
						|
        return "%04d-%02d-%02dT%02d:%02d:%02dZ" % \
 | 
						|
        (d.get(d.YEAR), d.get(d.MONTH)+1, d.get(d.DATE), \
 | 
						|
        d.get(d.HOUR_OF_DAY), d.get(d.MINUTE), d.get(d.SECOND))
 | 
						|
 | 
						|
    def getNow():
 | 
						|
        c = java.util.Calendar.getInstance()
 | 
						|
        c.setTimeZone(java.util.TimeZone.getTimeZone("UTC"))
 | 
						|
        c.get(c.HOUR) #force refresh?
 | 
						|
        return c
 | 
						|
 | 
						|
    def getHoursFromNow(hours):
 | 
						|
        d = getNow()
 | 
						|
        d.add(d.HOUR, hours)
 | 
						|
        return d
 | 
						|
 | 
						|
    def isDateClassExpired(d):
 | 
						|
        n = getNow()
 | 
						|
        return d.before(n)
 | 
						|
 | 
						|
    def isDateClassBefore(d1, d2):
 | 
						|
        return d1.before(d2)
 |