'Returns a new :class:`Arrow <arrow.arrow.Arrow>` object, converted to the target
timezone.
:param tz: an expression representing a timezone.
Recognized timezone expressions:
- A ``tzinfo`` object.
- A ``str`` describing a timezone, similar to \'US/Pacific\', or \'Europe/Berlin\'.
- A ``str`` in ISO-8601 style, as in \'+07:00\'.
- A ``str``, one of the following:  \'local\', \'utc\', \'UTC\'.
Usage::
>>> utc = arrow.utcnow()
>>> utc
<Arrow [2013-05-09T03:49:12.311072+00:00]>
>>> utc.to(\'US/Pacific\')
<Arrow [2013-05-08T20:49:12.311072-07:00]>
>>> utc.to(tz.tzlocal())
<Arrow [2013-05-08T20:49:12.311072-07:00]>
>>> utc.to(\'-07:00\')
<Arrow [2013-05-08T20:49:12.311072-07:00]>
>>> utc.to(\'local\')
<Arrow [2013-05-08T20:49:12.311072-07:00]>
>>> utc.to(\'local\').to(\'utc\')
<Arrow [2013-05-09T03:49:12.311072+00:00]>'

def to(self, tz):

    if (not isinstance(tz, tzinfo)):
        tz = parser.TzinfoParser.parse(tz)
    dt = self._datetime.astimezone(tz)
    return self.__class__(dt.year, dt.month, dt.day, dt.hour, dt.minute, dt.second, dt.microsecond, dt.tzinfo)
