Before I continue further, I want to emphasise that there is a problem with the output of )SAVE. It may, however, be different from your opinion.
There are two different things to think about when working with time:
- Displaying time information for the user's benefit
- For processing by a computer program
In the first case, it's natural to display local time. Usually one displays the local time followed by the an indication of what timezone was used when displaying this value. This is where GNU APL does things wrong, as it's displaying GMT along with the timezone information where the save happened. This is not right. When displaying GMT time, one should indicate the timezone as Z, UTC, GMT+0, or something similar.
The second case is when the number is returned for the purpose of further computation. This number should (almost) always be UTC. There are of course many reasons for this, but the most compelling one is that it's very easy to convert a UTC timestamp into any other timezone for display to a user, but converting back from local time can in some cases actually be completely impossible (think daylight savings, and other adjustments).
As for time manipulation, it's an incredibly complicated subject (something I have worked a lot on in my career) and I would certainly like to see something simple, such as the Unix time_t used for time representation. The worst one I've come across is the ⎕TS form, which is pretty much impossible to work with except for displaying the current time to the user.
There are other arguments that can be made, but my mail is long enough already and I think my position has been made. :-)
Regards,
Elias