On Fri, 2016-08-12 at 23:02 +0200, Gert Doering wrote: > This is a good argument. Unfortunately, it's a surprisingly *hairy* one, > as there are time zones that do not have a full-hour offset - so ISO 8601 > (according to wikipedia) says you should do "±hh:mm" then - and for > most folks, ":mm" would always be ":00", sort of waste of screen real > estate...
You would definitely want to use the standard format that you see every
day in email, and as you see it above: +0200.
> Regarding portability, this is even more interesting. I assumed that
> localtime()'s "struct tm" would be truly portable, but it seems that
> older unixes have "long tm_tzadj; /* seconds from UTC */" while
> modern ones have "long tm_gmtoff; /* offset from UTC in seconds */"
> (WHY OH WHY???)....
>
> * TZMINS_USE_xxxxxx specifies how to get timezone offset.
> *
> * TZMINS_USE_TM_TZADJ use (struct tm*)->tm_tzadj
> * TZMINS_USE_TM_GMTOFF use (struct tm*)->tm_gmtoff
> * TZMINS_USE_TZAZ_GLOBAL use "timezone, altzone" externals
> * TZMINS_USE_TZ_GLOBAL use "timezone" external
> * TZMINS_USE_FTIME use ftime() function
> * TZMINS_USE_TIMEOFDAY use gettimeofday() function
>
> ... from ports/elm/lib/get_tz.c...
>
> (I don't think anything but tzadj/gmtoff is relevant anymore today, but
> need to check more systems. And no, strftime() isn't helping - it
> has "%z", which, according to FreeBSD's man page is an extention to
> the C90 standard...)
Yeah, I once made git use strftime("%z") but that is... handled
differently now.
time(&now);
offset = tm_to_time_t(localtime(&now)) - now;
offset /= 60;
Where tm_to_time_t() is basically mktime() except that *that* has
bizarre issues on some platforms too. But fundamentally, comparing
gmtime(now) with localtime(now) might be the way to go.
The alternative option is just to *always* log in UTC, of course... :)
--
dwmw2
smime.p7s
Description: S/MIME cryptographic signature
------------------------------------------------------------------------------ What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic patterns at an interface-level. Reveals which users, apps, and protocols are consuming the most bandwidth. Provides multi-vendor support for NetFlow, J-Flow, sFlow and other flows. Make informed decisions using capacity planning reports. http://sdm.link/zohodev2dev
_______________________________________________ Openvpn-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/openvpn-devel
