Exemplo n.º 1
0
 def test_split_tzname_delta(self):
     tests = [
         ("Asia/Ust+Nera", ("Asia/Ust+Nera", None, None)),
         ("Asia/Ust-Nera", ("Asia/Ust-Nera", None, None)),
         ("Asia/Ust+Nera-02:00", ("Asia/Ust+Nera", "-", "02:00")),
         ("Asia/Ust-Nera+05:00", ("Asia/Ust-Nera", "+", "05:00")),
         ("America/Coral_Harbour-01:00", ("America/Coral_Harbour", "-", "01:00")),
         ("America/Coral_Harbour+02:30", ("America/Coral_Harbour", "+", "02:30")),
         ("UTC+15:00", ("UTC", "+", "15:00")),
         ("UTC-04:43", ("UTC", "-", "04:43")),
         ("UTC", ("UTC", None, None)),
         ("UTC+1", ("UTC+1", None, None)),
     ]
     for tzname, expected in tests:
         with self.subTest(tzname=tzname):
             self.assertEqual(split_tzname_delta(tzname), expected)
Exemplo n.º 2
0
def _sqlite_datetime_parse(dt, tzname=None, conn_tzname=None):
    if dt is None:
        return None
    try:
        dt = typecast_timestamp(dt)
    except (TypeError, ValueError):
        return None
    if conn_tzname:
        dt = dt.replace(tzinfo=timezone_constructor(conn_tzname))
    if tzname is not None and tzname != conn_tzname:
        tzname, sign, offset = split_tzname_delta(tzname)
        if offset:
            hours, minutes = offset.split(":")
            offset_delta = timedelta(hours=int(hours), minutes=int(minutes))
            dt += offset_delta if sign == "+" else -offset_delta
        dt = timezone.localtime(dt, timezone_constructor(tzname))
    return dt
Exemplo n.º 3
0
 def _prepare_tzname_delta(self, tzname):
     tzname, sign, offset = split_tzname_delta(tzname)
     if offset:
         sign = "-" if sign == "+" else "+"
         return f"{tzname}{sign}{offset}"
     return tzname
Exemplo n.º 4
0
 def _prepare_tzname_delta(self, tzname):
     tzname, sign, offset = split_tzname_delta(tzname)
     if offset:
         sign = '-' if sign == '+' else '+'
         return f'{tzname}{sign}{offset}'
     return tzname
Exemplo n.º 5
0
 def _prepare_tzname_delta(self, tzname):
     tzname, sign, offset = split_tzname_delta(tzname)
     return f"{sign}{offset}" if offset else tzname