date.c: fix printout of timezone offsets that aren't exact hours
We'd get the sign wrong for the minutes part of a negative offset.
This commit is contained in:
10
date.c
10
date.c
@ -250,7 +250,7 @@ static int match_tz(char *date, int *offp)
|
||||
void parse_date(char *date, char *result, int maxlen)
|
||||
{
|
||||
struct tm tm;
|
||||
int offset;
|
||||
int offset, sign;
|
||||
time_t then;
|
||||
|
||||
memset(&tm, 0, sizeof(tm));
|
||||
@ -293,7 +293,13 @@ void parse_date(char *date, char *result, int maxlen)
|
||||
|
||||
then -= offset * 60;
|
||||
|
||||
snprintf(result, maxlen, "%lu %+03d%02d", then, offset/60, offset % 60);
|
||||
sign = '+';
|
||||
if (offset < 0) {
|
||||
offset = -offset;
|
||||
sign = '-';
|
||||
}
|
||||
|
||||
snprintf(result, maxlen, "%lu %c%02d%02d", then, sign, offset/60, offset % 60);
|
||||
}
|
||||
|
||||
void datestamp(char *buf, int bufsize)
|
||||
|
Reference in New Issue
Block a user