summaryrefslogtreecommitdiff
path: root/pjlib/src/pj/os_time_ansi.c
diff options
context:
space:
mode:
Diffstat (limited to 'pjlib/src/pj/os_time_ansi.c')
-rw-r--r--pjlib/src/pj/os_time_ansi.c19
1 files changed, 17 insertions, 2 deletions
diff --git a/pjlib/src/pj/os_time_ansi.c b/pjlib/src/pj/os_time_ansi.c
index 21a117a6..c0cb9f51 100644
--- a/pjlib/src/pj/os_time_ansi.c
+++ b/pjlib/src/pj/os_time_ansi.c
@@ -48,7 +48,6 @@ PJ_DEF(pj_status_t) pj_time_decode(const pj_time_val *tv, pj_parsed_time *pt)
pt->min = local_time->tm_min;
pt->sec = local_time->tm_sec;
pt->wday = local_time->tm_wday;
- pt->yday = local_time->tm_yday;
pt->msec = tv->msec;
return PJ_SUCCESS;
@@ -57,7 +56,23 @@ PJ_DEF(pj_status_t) pj_time_decode(const pj_time_val *tv, pj_parsed_time *pt)
/**
* Encode parsed time to time value.
*/
-PJ_DEF(pj_status_t) pj_time_encode(const pj_parsed_time *pt, pj_time_val *tv);
+PJ_DEF(pj_status_t) pj_time_encode(const pj_parsed_time *pt, pj_time_val *tv)
+{
+ struct tm local_time;
+
+ local_time.tm_year = pt->year-1900;
+ local_time.tm_mon = pt->mon;
+ local_time.tm_mday = pt->day;
+ local_time.tm_hour = pt->hour;
+ local_time.tm_min = pt->min;
+ local_time.tm_sec = pt->sec;
+ local_time.tm_isdst = 0;
+
+ tv->sec = mktime(&local_time);
+ tv->msec = pt->msec;
+
+ return PJ_SUCCESS;
+}
/**
* Convert local time to GMT.