3eb966b18588ec72f1628256589b746a26d4d867
[ppastats.git] / src / ptime.c
1 /*
2  * Copyright (C) 2010-2014 jeanfi@gmail.com
3  *
4  * This program is free software; you can redistribute it and/or
5  * modify it under the terms of the GNU General Public License as
6  * published by the Free Software Foundation; either version 2 of the
7  * License, or (at your option) any later version.
8  *
9  * This program is distributed in the hope that it will be useful, but
10  * WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12  * General Public License for more details.
13  *
14  * You should have received a copy of the GNU General Public License
15  * along with this program; if not, write to the Free Software
16  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
17  * 02110-1301 USA
18  */
19 #include <stdlib.h>
20 #include <string.h>
21
22 #include <ptime.h>
23
24 static int ISO8601_TIME_LENGTH = 219;  /* YYYY-MM-DDThh:mm:ss */
25
26 char *time_to_str(time_t *t)
27 {
28         struct tm lt;
29         char *str;
30
31         memset(&lt, 0, sizeof(struct tm));
32         if (!localtime_r(t, &lt))
33                 return NULL;
34
35         str = malloc(ISO8601_TIME_LENGTH);
36
37         if (strftime(str, ISO8601_TIME_LENGTH, "%FT%T", &lt)) {
38                 return str;
39         } else {
40                 free(str);
41                 return NULL;
42         }
43 }
44
45 char *get_current_time_str()
46 {
47         time_t t;
48
49         t = time(NULL);
50         return time_to_str(&t);
51 }