示例#1
0
    def test_datetime_timezone(self):

        class FixedNoDst(datetime.tzinfo):
            'A timezone info with fixed offset, not DST'

            def utcoffset(self, dt):
                return datetime.timedelta(hours=2, minutes=30)

            def dst(self, dt):
                return None

        fixed_no_dst = FixedNoDst()

        class Fixed(FixedNoDst):
            'A timezone info with DST'

            def dst(self, dt):
                return datetime.timedelta(hours=3, minutes=15)

        fixed = Fixed()

        d = datetime.datetime.now().replace(tzinfo=fixed_no_dst)
        timezone = _timezone(_timedelta_to_seconds(fixed_no_dst.\
                                                   utcoffset(None)))
        eq_(rfc3339(d),
                         d.strftime('%Y-%m-%dT%H:%M:%S') + timezone)

        d = datetime.datetime.now().replace(tzinfo=fixed)
        timezone = _timezone(_timedelta_to_seconds(fixed.dst(None)))
        eq_(rfc3339(d),
                         d.strftime('%Y-%m-%dT%H:%M:%S') + timezone)
示例#2
0
    def test_datetime_timezone(self):
        class FixedNoDst(datetime.tzinfo):
            'A timezone info with fixed offset, not DST'

            def utcoffset(self, dt):
                return datetime.timedelta(hours=2, minutes=30)

            def dst(self, dt):
                return None

        fixed_no_dst = FixedNoDst()

        class Fixed(FixedNoDst):
            'A timezone info with DST'

            def dst(self, dt):
                return datetime.timedelta(hours=3, minutes=15)

        fixed = Fixed()

        d = datetime.datetime.now().replace(tzinfo=fixed_no_dst)
        timezone = _timezone(_timedelta_to_seconds(fixed_no_dst.\
                                                   utcoffset(None)))
        eq_(rfc3339(d), d.strftime('%Y-%m-%dT%H:%M:%S') + timezone)

        d = datetime.datetime.now().replace(tzinfo=fixed)
        timezone = _timezone(_timedelta_to_seconds(fixed.dst(None)))
        eq_(rfc3339(d), d.strftime('%Y-%m-%dT%H:%M:%S') + timezone)
示例#3
0
        def test_PDTChange(self):
            '''Test Daylight saving change'''
            # PDT switch happens at 2AM on March 14, 2010

            # 1:59AM PST
            eq_(rfc3339(datetime.datetime(2010, 3, 14, 1, 59)),
                             '2010-03-14T01:59:00-08:00')
            # 3AM PDT
            eq_(rfc3339(datetime.datetime(2010, 3, 14, 3, 0)),
                             '2010-03-14T03:00:00-07:00')
示例#4
0
        def test_PDTChange(self):
            '''Test Daylight saving change'''
            # PDT switch happens at 2AM on March 14, 2010

            # 1:59AM PST
            eq_(rfc3339(datetime.datetime(2010, 3, 14, 1, 59)),
                '2010-03-14T01:59:00-08:00')
            # 3AM PDT
            eq_(rfc3339(datetime.datetime(2010, 3, 14, 3, 0)),
                '2010-03-14T03:00:00-07:00')
示例#5
0
        def test_PSTChange(self):
            '''Test Standard time change'''
            # PST switch happens at 2AM on November 6, 2010

            # 0:59AM PDT
            eq_(rfc3339(datetime.datetime(2010, 11, 7, 0, 59)),
                             '2010-11-07T00:59:00-07:00')

            # 1:00AM PST
            # There's no way to have 1:00AM PST without a proper tzinfo
            eq_(rfc3339(datetime.datetime(2010, 11, 7, 1, 0)),
                             '2010-11-07T01:00:00-07:00')
示例#6
0
        def test_PSTChange(self):
            '''Test Standard time change'''
            # PST switch happens at 2AM on November 6, 2010

            # 0:59AM PDT
            eq_(rfc3339(datetime.datetime(2010, 11, 7, 0, 59)),
                '2010-11-07T00:59:00-07:00')

            # 1:00AM PST
            # There's no way to have 1:00AM PST without a proper tzinfo
            eq_(rfc3339(datetime.datetime(2010, 11, 7, 1, 0)),
                '2010-11-07T01:00:00-07:00')
示例#7
0
 def test_date_utc(self):
     d = datetime.date.today()
     # Convert `date` to `datetime`, since `date` ignores seconds and hours
     # in timedeltas:
     # >>> datetime.date(2008, 9, 7) + datetime.timedelta(hours=23)
     # datetime.date(2008, 9, 7)
     d_utc = datetime.datetime(*d.timetuple()[:3]) + self.local_utcoffset
     eq_(rfc3339(d, utc=True), d_utc.strftime('%Y-%m-%dT%H:%M:%SZ'))
示例#8
0
 def test_date_utc(self):
     d = datetime.date.today()
     # Convert `date` to `datetime`, since `date` ignores seconds and hours
     # in timedeltas:
     # >>> datetime.date(2008, 9, 7) + datetime.timedelta(hours=23)
     # datetime.date(2008, 9, 7)
     d_utc = datetime.datetime(*d.timetuple()[:3]) + self.local_utcoffset
     eq_(rfc3339(d, utc=True),
                      d_utc.strftime('%Y-%m-%dT%H:%M:%SZ'))
示例#9
0
 def _parse_date(self, date=None, utc=True, use_system_timezone=False):
     dt = None
     if date is None or not isinstance(date, datetime.datetime):
         if isinstance(date, basestring):
             try:
                 dt = parse(date)
             except ValueError:
                 dt = datetime.datetime.utcnow()
         else:
             dt = datetime.datetime.utcnow()
     else:
         dt = date
     return rfc3339(dt, utc=utc, use_system_timezone=use_system_timezone)
示例#10
0
 def _parse_date(self, date=None, utc=True, use_system_timezone=False):
     dt = None
     if date is None or not isinstance(date, datetime.datetime):
         if isinstance(date, basestring):
             try:
                 dt = parse(date)
             except ValueError:
                 dt = datetime.datetime.utcnow()
         else:
             dt = datetime.datetime.utcnow()
     else:
         dt = date
     return rfc3339(dt, utc=utc, use_system_timezone=use_system_timezone)
示例#11
0
 def test_1920(self):
     d = datetime.date(1920, 02, 29)
     x = rfc3339(d, utc=False, use_system_timezone=True)
     ok_(x.startswith('1920-02-29T00:00:00'))
示例#12
0
 def test_before_1970(self):
     d = datetime.date(1885, 01, 04)
     ok_(rfc3339(d).startswith('1885-01-04T00:00:00'))
     eq_(rfc3339(d, utc=True, use_system_timezone=False),
         '1885-01-04T00:00:00Z')
示例#13
0
 def test_timestamp_utc(self):
     d = time.time()
     d_utc = datetime.datetime.utcfromtimestamp(d) + self.local_utcoffset
     eq_(rfc3339(d),
         (d_utc.strftime('%Y-%m-%dT%H:%M:%S') + self.local_timezone))
示例#14
0
 def test_timestamp(self):
     d = time.time()
     eq_(rfc3339(d),
                      datetime.datetime.fromtimestamp(d).\
                      strftime('%Y-%m-%dT%H:%M:%S') + self.local_timezone)
示例#15
0
 def test_date(self):
     d = datetime.date.today()
     eq_(rfc3339(d), d.strftime('%Y-%m-%dT%H:%M:%S') + self.local_timezone)
示例#16
0
 def test_date(self):
     d = datetime.date.today()
     eq_(rfc3339(d),
                      d.strftime('%Y-%m-%dT%H:%M:%S') + self.local_timezone)
示例#17
0
 def test_1920(self):
     d = datetime.date(1920, 02, 29)
     x = rfc3339(d, utc=False, use_system_timezone=True)
     ok_(x.startswith('1920-02-29T00:00:00'))
示例#18
0
 def test_before_1970(self):
     d = datetime.date(1885, 01, 04)
     ok_(rfc3339(d).startswith('1885-01-04T00:00:00'))
     eq_(rfc3339(d, utc=True, use_system_timezone=False),
                      '1885-01-04T00:00:00Z')
示例#19
0
 def test_timestamp_utc(self):
     d = time.time()
     d_utc = datetime.datetime.utcfromtimestamp(d) + self.local_utcoffset
     eq_(rfc3339(d),
                      (d_utc.strftime('%Y-%m-%dT%H:%M:%S') +
                       self.local_timezone))
示例#20
0
 def test_timestamp(self):
     d = time.time()
     eq_(rfc3339(d),
                      datetime.datetime.fromtimestamp(d).\
                      strftime('%Y-%m-%dT%H:%M:%S') + self.local_timezone)
示例#21
0
 def test_datetime_utc(self):
     d = datetime.datetime.now()
     d_utc = d + self.local_utcoffset
     eq_(rfc3339(d, utc=True), d_utc.strftime('%Y-%m-%dT%H:%M:%SZ'))
示例#22
0
 def test_datetime_utc(self):
     d = datetime.datetime.now()
     d_utc = d + self.local_utcoffset
     eq_(rfc3339(d, utc=True),
                      d_utc.strftime('%Y-%m-%dT%H:%M:%SZ'))