Exemplo n.º 1
0
def date_time_string_to_ms_since_epoch(date_time_string):
    """Converts the given date_time_string (e.g. '5 minutes ago') to milliseconds since epoch"""
    import tzlocal
    from cook import dateparser
    local_tz = tzlocal.get_localzone()
    dt = dateparser.parse(date_time_string, local_tz)
    if dt:
        import pytz
        logging.debug(f'parsed "{date_time_string}" as {dt}')
        epoch = datetime(1970, 1, 1, tzinfo=pytz.utc)
        ms_since_epoch = int((dt - epoch).total_seconds() * 1000)
        logging.debug(f'converted "{date_time_string}" to ms {ms_since_epoch}')
        return ms_since_epoch
    else:
        raise Exception(f'"{date_time_string}" is not a valid date / time string.')
Exemplo n.º 2
0
 def test_parse(self):
     time_zone = pytz.utc
     now = datetime.datetime.now(time_zone)
     with freeze_time(now):
         self.assertEqual(now, dateparser.parse('now', time_zone))
         self.assertEqual(now, dateparser.parse('NOW', time_zone))
         self.assertEqual(now, dateparser.parse('Now', time_zone))
         self.assertEqual(now, dateparser.parse('today', time_zone))
         self.assertEqual(now, dateparser.parse('TODAY', time_zone))
         self.assertEqual(now, dateparser.parse('Today', time_zone))
         self.assertEqual(now - datetime.timedelta(1),
                          dateparser.parse('yesterday', time_zone))
         self.assertEqual(now - datetime.timedelta(1),
                          dateparser.parse('YESTERDAY', time_zone))
         self.assertEqual(now - datetime.timedelta(1),
                          dateparser.parse('Yesterday', time_zone))
         self.assertEqual(now - datetime.timedelta(seconds=1),
                          dateparser.parse('1 sec ago', time_zone))
         self.assertEqual(now - datetime.timedelta(seconds=1),
                          dateparser.parse('1 second ago', time_zone))
         self.assertEqual(now - datetime.timedelta(seconds=2),
                          dateparser.parse('2 seconds ago', time_zone))
         self.assertEqual(now - datetime.timedelta(minutes=1),
                          dateparser.parse('1 min ago', time_zone))
         self.assertEqual(now - datetime.timedelta(minutes=1),
                          dateparser.parse('1 minute ago', time_zone))
         self.assertEqual(now - datetime.timedelta(minutes=2),
                          dateparser.parse('2 minutes ago', time_zone))
         self.assertEqual(now - datetime.timedelta(hours=1),
                          dateparser.parse('1 hour ago', time_zone))
         self.assertEqual(now - datetime.timedelta(hours=2),
                          dateparser.parse('2 hours ago', time_zone))
         self.assertEqual(now - datetime.timedelta(days=1),
                          dateparser.parse('1 day ago', time_zone))
         self.assertEqual(now - datetime.timedelta(days=2),
                          dateparser.parse('2 days ago', time_zone))
         self.assertEqual(now - datetime.timedelta(weeks=1),
                          dateparser.parse('1 week ago', time_zone))
         self.assertEqual(now - datetime.timedelta(weeks=2),
                          dateparser.parse('2 weeks ago', time_zone))
         self.assertEqual(now - datetime.timedelta(weeks=3),
                          dateparser.parse('3 WEEKS AGO', time_zone))
         self.assertEqual(datetime.datetime(2017, 10, 5, tzinfo=time_zone),
                          dateparser.parse('2017-10-05', time_zone))
         self.assertEqual(
             datetime.datetime(2017, 10, 5, 16, 36, tzinfo=time_zone),
             dateparser.parse('2017-10-05 16:36', time_zone))
         self.assertEqual(
             datetime.datetime(2017, 10, 6, 16, 37, 59, tzinfo=tzlocal()),
             dateparser.parse('Fri Oct  6 16:37:59 CDT 2017', time_zone))
         self.assertEqual(
             datetime.datetime(2003,
                               9,
                               25,
                               10,
                               49,
                               41,
                               tzinfo=tz.tzoffset(
                                   None, datetime.timedelta(hours=-3))),
             dateparser.parse('Thu, 25 Sep 2003 10:49:41 -0300', time_zone))
         self.assertIsNone(
             dateparser.parse('1 day ago 1 hour ago', time_zone))
         self.assertIsNone(dateparser.parse('1 day', time_zone))
         self.assertIsNone(dateparser.parse('day ago', time_zone))
         self.assertIsNone(dateparser.parse('day', time_zone))
         self.assertIsNone(dateparser.parse('ago', time_zone))
         self.assertIsNone(dateparser.parse('foo', time_zone))
         self.assertIsNone(dateparser.parse('', time_zone))