Parse date and time from string with time zone using Arrow

Try this:

arrow.get(s, 'YYYY/M/D HH:mm:ss', tzinfo=tz)

If you are also using dateutil, this works as well:

arrow.get(s, 'YYYY/M/D HH:mm:ss', tzinfo=dateutil.tz.gettz(tz))

So does this:

arrow.get(s, 'YYYY/M/D HH:mm:ss').replace(tzinfo=dateutil.tz.gettz(tz))

I'm not qualified yet to add a comment and would just like to share a bit simpler version of the answer with timezone str expression.

s = '2015/12/1 19:00:00'
tz = 'Asia/Hong_Kong'
arrow.get(s, 'YYYY/M/D HH:mm:ss').replace(tzinfo=tz)

or simply local timezone:

arrow.get(s, 'YYYY/M/D HH:mm:ss').replace(tzinfo='local')

or specified ISO-8601 style:

arrow.get(s, 'YYYY/M/D HH:mm:ss').replace(tzinfo='+08:00')