Fix API.
[shishi.git] / lib / gztime.c
blob9f81f7d4033fe66d4a8ce853dcb4591160c9b621
1 /* gztime.c convert into GeneralizedTime
2 * Copyright (C) 2002, 2003 Simon Josefsson
4 * This file is part of Shishi.
6 * Shishi is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation; either version 2 of the License, or
9 * (at your option) any later version.
11 * Shishi is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
16 * You should have received a copy of the GNU General Public License
17 * along with Shishi; if not, write to the Free Software
18 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
22 #include "internal.h"
23 #include "timegm.h"
25 const char *
26 shishi_generalize_time (Shishi * handle, time_t t)
28 struct tm *tm;
30 tm = gmtime (&t);
31 strftime (handle->gztime_buf, sizeof (handle->gztime_buf),
32 "%Y%m%d%H%M%SZ", tm);
34 return handle->gztime_buf;
37 const char *
38 shishi_generalize_now (Shishi * handle)
40 time_t t = xtime (NULL);
42 return shishi_generalize_time (handle, t);
45 time_t
46 shishi_generalize_ctime (Shishi * handle, const char *t)
48 struct tm tm;
49 time_t ct;
51 memset (&tm, 0, sizeof (tm));
53 sscanf (t, "%4u%2u%2u%2u%2u%2uZ",
54 &tm.tm_year, &tm.tm_mon, &tm.tm_mday,
55 &tm.tm_hour, &tm.tm_min, &tm.tm_sec);
56 tm.tm_year -= 1900;
57 tm.tm_mon--;
59 ct = timegm (&tm);
61 return ct;