
On Mon, 20 Jan 1997, Markus G. Kuhn wrote:
I just wanted to start writing a ISO 8601 subset -> time_t conversion routine, but to my great disappointment I discovered that ISO C does not seem to allow portable conversion of a broken-down time into time_t.
In other words, while mktime() is the inverse function to localtime(), there exists no mkgmtime() that is the inverse function to gmtime(). I knew that the C standard library time API is a strange design, but I had no idea that it was *that* bad.
The only practical way to get from a broken-down UTC time to time_t seems to be to assume that we are on a POSIX system where the time_t representation is exactly specified.
Or did I miss something?
You can do a binary search of the time_t space using the gmtime() function. This does require the assumption that time_t is an integral type, but works well. I have some source to do it, but it has two copyrights on it. It'd be nice to have source in the date-time document which was unencumbered...