do not store tz offset in global, store timezone object instead
add automatic timezone (based on client tz offset)
clientTzOffset: use proper sign