in reply to Re: Re: Re: Internet Time
in thread Internet Time

I remember in DOS that the OS had no concept of what timezone it is running in, so it could not base the epoch in UTC (nee GMT). That might be true for older systems in general, and might be the case for embedded systems.

It may work on every machine he tried it on, but he's still relying on emperical "happens to be implemented that way" functionality, not on specified, guaranteed functionality. IOW, it's "non-portable".

There's nothing wrong with that; you just need to be aware of its limitations. E.g. re-qualify on any new platform.

Replies are listed 'Best First'.
Re: Re: Re: Re: Re: Internet Time
by theorbtwo (Prior) on Aug 12, 2002 at 21:30 UTC

    Shrug. The algo given relies on three things:

    1. The number given by time() increases by 1 every second of time that passes (IE is in seconds since some epoch.) (This is true for all OSes, and is part of the defintion of time() given in perlfunc.)
    2. The number given is invariant on the TZ the computer is in, assuming the computer is set up correctly. (This is true for all current ports that I am directly aware of, but not gaurnteed by perlfunc:time, nor perlport, as far as I can see. (I suspect it's even true for DOS, if you set $ENV{TZ} correctly, which I include under "assuming the computer is set up correctly", but I see no documentation of that in perldos.))
    3. The epoch refered to in point 1 is on midnight of some day. This isn't gaurneed by perlfunc:time, nor perlport, but I'm unaware of any platform where it isn't true, and it seems quite insane for it to be untrue.

    It should probably be noted that the only platforms I have programming experince on are DOS-based or Linux.


    Confession: It does an Immortal Body good.