Brian Inglis wrote:
It is not immediately apparent this is a zone "abbreviation", could be some kind of correction or a lat/long.
This format should be apparent in context. In a traditional date-time stamp such as POSIX C-locale 'date' output ("Mon Feb 15 03:18:46 +04 2016"), the "+04" is not reasonably interpreted to be a latitude or longitude. True, it might be interpreted to be a time correction; but that would be OK as it _is_ a time correction.
Without at least minutes and possibly also a colon, this does not look like a zone value.
POSIX does not allow a colon, but we could append minutes, e.g., "+0400" instead of "+04". Such a notation is widely used, e.g., Internet RFC 5322, which is used by this very email's "Date:" line (where "-0800" denotes my current time zone). ISO 8601 allows both "+04" and "+0400" (as well as "+04:00" and some other possibilities excluded by POSIX).
With more characters this may not fit within TZNAME_MAX limits, although looking around implementations there seems favour for 6.
POSIX requires that TZNAME_MAX must be at least 6, so we should be OK here. The attached additional patch would change the new zone to use "+0400" rather than "+04". Still, I mildly prefer "+04", as it's briefer. No matter what we switch to, we will confuse some people; and other things being roughly equal, briefer is better.