/gdata/tlslite/utils/dateFuncs.py

http://radioappz.googlecode.com/ · Python · 75 lines · 51 code · 18 blank · 6 comment · 2 complexity · 731dd000a213d23e57042482a4fbc2bd MD5 · raw file

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