Locate a specific time zone object. If the argument is a string, it is
interpreted to mean the name of the timezone to locate. If it is a numeric
value it is either the hour offset, or the second offset, of the timezone
to find. (The first one with that offset will be returned.) Returns
nil if no such time zone is known to the system.

Create a new TimeZone object with the given
name and offset. The offset is the number of seconds that this time zone is
offset from UTC (GMT). Seconds were chosen as the offset unit because that
is the unit that Ruby uses to represent time zone offsets (see
Time#utc_offset).

Assumes that str is a time in the time zone self,
unless format includes an explicit time zone. (This is the
same behavior as parse.) In either case, the returned TimeWithZone has the timezone of
self.