aboutsummaryrefslogtreecommitdiffstats
path: root/calendar/timeutil.c
diff options
context:
space:
mode:
Diffstat (limited to 'calendar/timeutil.c')
-rw-r--r--calendar/timeutil.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/calendar/timeutil.c b/calendar/timeutil.c
index 10b9483af0..78c1c46d56 100644
--- a/calendar/timeutil.c
+++ b/calendar/timeutil.c
@@ -18,6 +18,9 @@ time_from_isodate (char *str)
struct tm my_tm;
time_t t;
+ if (strlen (str) < 14)
+ return -1;
+
my_tm.tm_year = (digit_at (str, 0) * 1000 + digit_at (str, 1) * 100 +
digit_at (str, 2) * 10 + digit_at (str, 3)) - 1900;
@@ -29,6 +32,10 @@ time_from_isodate (char *str)
my_tm.tm_isdst = -1;
t = mktime (&my_tm);
+
+ if (str [15] == 'Z')
+ t -= timezone;
+
return t;
}