mktime() failure vs 31-DEC-1969 23:59:59 GMT

tomp at zk3.dec.com tomp at zk3.dec.com
Mon Feb 19 16:18:47 UTC 1996


Hi Paul,

Thanks for your response.

>    > My man page on mktime() (Solaris2) clearly says that 'tm_year
>    > of the tm structure must be for year 1970 or later.'
> 
>    This would seem to limit the usefulness of timezone rules prior
>    to 1970 with respect to mktime().  Perhaps they did this for
>    standards compliance?
> 
> No standard that I know of requires that mktime fail before the epoch.

Oops, that wasn't my point.  The fact that standards don't require that
mktime() *succeed* with times before the EPOCH (and the fact that mktime()
has a problem or ambiguity with the -1 return) might have lead Solaris2 to
document that the function only supported times for year 1970 or later.

> I've asked Sun to fix this, since the Solaris 2.5 behavior is
> schizophrenic.  For example, Solaris 2.5 localtime works fine on times
> before the epoch, which means that mktime is not the inverse of
> localtime as it should be.

Is it a requirement (standards, etc) that localtime() work as an inverse
of mktime(); more specifically, when dealing with times before the EPOCH?
This was a point I raised previously on this thread.  I don't think they
are *required* to work this way (or any way) for times before the EPOCH,
since the standards do not seem to be support pre-EPOCH times for these
functions.  If the documentation for the system (manpage, etc) states that
these routines support pre-EPOCH times, then perhaps you have a case.

> Solaris 2.5 has other problems in this area; see Sun bug 1229958
> (``ctime, localtime functions slow and incorrect'').

Where can this be found?

thanks much,
- Tom



More information about the tz mailing list