I sort of agree that the 'zzz' format is a bit strange, to the point that I would probably avoid it altogether personally. Instead, I would just stick with 'zz' or 'z'.
I believe the most standard timezone notation is of the form "UTC-5", "UTC-05", and "UTC-05:00". As such, it might make more sense to design $asctime, et al., like so:
z ==> -5 +10 -3:30
zz ==> -05 +10 -03:30
zzz ==> -05:00 +10:00 -03:30
u ==> UTC
Then, you can use 'uz', 'uzz', or 'uzzz' to get formats like "UTC-5", "UTC-05", or "UTC-05:00", respectively. The 'u' shortcut would be handy since 'm' and 't' are already reserved for month and AM/PM.
I don't think this change is necessary, but just that it would be more consistent with standard notation.