def get_datetimes(self, fmt='datetime'): """ Returns the datetimes of the reports. Parameters ---------- fmt datetime return type: 'datetime' - datetime object 'string' - string in YYYY-MM-DD HH:MM format 'int' - integer list in [YYYYMMDD, HHMM] format 'unix' - Unix timestamp """ assert fmt in ('datetime', 'string', 'int', 'unix'), "Invalid format \'%s\'" % fmt dts = [] for i in xrange(self.nrep): d = _datetime(self.year[i], self.month[i], self.day[i], self.hour[i], self.minute[i]) if fmt in ('string', 'int'): d = d.isoformat().replace('T', ' ') d = d[:[x.start() for x in _re.finditer(':', d)][-1]] if fmt=='int': d = [ int(i) for i in d.replace('-', '').replace(':', '').split() ] elif fmt=='unix': d = _timegm(d.timetuple()) dts.append(d) return dts
def _date_to_unix(arg): global _timegm if isinstance(arg, datetime): arg = arg.utctimetuple() elif isinstance(arg, (int, long, float)): return int(arg) if _timegm is None: from calendar import timegm as _timegm return _timegm(arg)
def _date_to_unix(arg): """Converts a timetuple, integer or datetime object into the seconds from epoch in utc. """ global _timegm if isinstance(arg, datetime): arg = arg.utctimetuple() elif isinstance(arg, (int, long, float)): return int(arg) if _timegm is None: from calendar import timegm as _timegm return _timegm(arg)
def get_datetimes(self, fmt='datetime'): """ Returns the datetimes of the reports. Args: fmt : datetime return type: 'datetime' - datetime object 'string' - string in YYYY-MM-DD HH:MM format 'int' - integer list in [YYYYMMDD, HHMM] format 'unix' - Unix timestamp Returns: list, datetimes of the reports """ assert fmt in ('datetime', 'string', 'int', 'unix'), "Invalid format \'%s\'" % fmt dts = [] for i in range(self.nrep): d = _datetime(self.year[i], self.month[i], self.day[i], self.hour[i], self.minute[i]) if fmt in ('string', 'int'): d = d.isoformat().replace('T', ' ') d = d[:[x.start() for x in _re.finditer(':', d)][-1]] if fmt == 'int': d = [ int(i) for i in d.replace('-', '').replace(':', '').split() ] elif fmt == 'unix': d = _timegm(d.timetuple()) dts.append(d) return dts
def timeFromPtime(self, text, pattern): return _timegm(_strptime(text, pattern))
def _dt2posix(dt): return _timegm(dt.timetuple()) * dt.microsecond*1e-6