[Gambas-user] Unix Date conversion

Benoit Minisini gambas at ...1...
Mon Jul 24 14:56:07 CEST 2006


On Monday 24 July 2006 14:48, Benoit Minisini wrote:
> On Monday 24 July 2006 14:37, MrBiTs wrote:
> > /*
> >     That is correct. # of seconds since 1/1/1970.
> > */
> >
> > Number of seconds since 1/1/1970 00:00:00 GMT.
> >
> > In perl, for example, we have a very simple line to convert Unix
> > Timestamp into human-readable format:
> >
> > $ perl -e "print scalar localtime(0);"
> > Wed Dec 31 21:00:00 1969
> >
> > As I told, this is GMT based. So, here in Brazil we  have GMT-3, then
> > that's correct.
> >
> > CheerS
>
> I have read the man page...
>
> Actually this is *not* the true number of seconds before 1/1/1970, because:
> - All years divisible by four are considered leap years.
> - Sometimes a leap second is added to some years, and it is ignored.
>
> So maybe a dedicated function is needed...

But according to:

http://www.opengroup.org/onlinepubs/009695399/basedefs/xbd_chap04.html

The leap years are respected. The formula is:

UnixDate = 
tm_sec + tm_min*60 + tm_hour*3600 + tm_yday*86400 +
    (tm_year-70)*31536000 + ((tm_year-69)/4)*86400 -
    ((tm_year-1)/100)*86400 + ((tm_year+299)/400)*86400

So who is right? :-)

I really should make a dedicated function!

-- 
Benoit Minisini




More information about the User mailing list