Add support for UTC times in iCal imports

According to the iCal standard (4.3.12 Time):

    UTC time, or absolute time, is identified by a LATIN CAPITAL LETTER
    Z suffix character (US-ASCII decimal 90), the UTC designator,
    appended to the time value.

Parse such time values properly when importing iCal files.

Fixes GitHub issue #3.

Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
This commit is contained in:
Lukas Fleischer
2015-02-23 10:43:54 +01:00
parent 4efa3f3fbf
commit 1ea97795be
6 changed files with 78 additions and 8 deletions

View File

@@ -386,6 +386,31 @@ long date2sec(struct date day, unsigned hour, unsigned min)
return t;
}
time_t
utcdate2sec(struct date day, unsigned hour, unsigned min)
{
char *tz;
time_t t;
tz = getenv("TZ");
if (tz)
tz = mem_strdup(tz);
setenv("TZ", "", 1);
tzset();
t = date2sec(day, hour, min);
if (tz) {
setenv("TZ", tz, 1);
mem_free(tz);
} else {
unsetenv("TZ");
}
tzset();
return t;
}
/* Return a string containing the date, given a date in seconds. */
char *date_sec2date_str(long sec, const char *datefmt)
{