mirror of
https://github.com/Gnucash/gnucash.git
synced 2026-07-29 23:58:03 -05:00
#506074: Handle fractional timezone offsets correctly in gnc_timespec_to_iso8601_buff().
Patch from Daniel Harding BP git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@16776 57a11ea4-9604-0410-9ed3-97b8803252fd
This commit is contained in:
@@ -1164,14 +1164,15 @@ gnc_timespec_to_iso8601_buff (Timespec ts, char * buff)
|
|||||||
localtime_r(&tmp, &parsed);
|
localtime_r(&tmp, &parsed);
|
||||||
|
|
||||||
secs = gnc_timezone (&parsed);
|
secs = gnc_timezone (&parsed);
|
||||||
tz_hour = secs / 3600;
|
|
||||||
tz_min = (secs % 3600) / 60;
|
|
||||||
|
|
||||||
/* We also have to print the sign by hand, to work around a bug
|
/* We also have to print the sign by hand, to work around a bug
|
||||||
* in the glibc 2.1.3 printf (where %+02d fails to zero-pad).
|
* in the glibc 2.1.3 printf (where %+02d fails to zero-pad).
|
||||||
*/
|
*/
|
||||||
cyn = '-';
|
cyn = '-';
|
||||||
if (0>tz_hour) { cyn = '+'; tz_hour = -tz_hour; }
|
if (0>secs) { cyn = '+'; secs = -secs; }
|
||||||
|
|
||||||
|
tz_hour = secs / 3600;
|
||||||
|
tz_min = (secs % 3600) / 60;
|
||||||
|
|
||||||
len = sprintf (buff, "%4d-%02d-%02d %02d:%02d:%02d.%06ld %c%02d%02d",
|
len = sprintf (buff, "%4d-%02d-%02d %02d:%02d:%02d.%06ld %c%02d%02d",
|
||||||
parsed.tm_year + 1900,
|
parsed.tm_year + 1900,
|
||||||
|
|||||||
Reference in New Issue
Block a user