Hi,

the format used to represent time in ofono is currently RFC2822 which is
complex and a bit deprecated. I think it would be better to move to
ISO8601 which is a well used and supported [1] format and simpler to parse.

RFC2822 date example: Mon, 05 Oct 2009 19:31:32 +0200
ISO8601 date example: 2009-10-05T19:31:26+0200


The proposed patch makes this transition.

Any comments?

Regards,
Olivier

[1] for example Glib has a g_time_val_from_iso8601 which understand
timezone compared to strptime which doesn't support %z

 From 16359eccfcb4a7a5444e6f87729008192edefc5e Mon Sep 17 00:00:00 2001
From: Olivier Le Thanh Duong <[email protected]>
Date: Mon, 5 Oct 2009 19:10:25 +0200
Subject: [PATCH] Migrate from RFC2822 to ISO8601 for time representations

---
  plugins/example_history.c |    6 +++---
  src/sms.c                 |    4 ++--
  src/voicecall.c           |    2 +-
  unit/test-sms.c           |    4 ++--
  4 files changed, 8 insertions(+), 8 deletions(-)

diff --git a/plugins/example_history.c b/plugins/example_history.c
index 384c88d..d923a8e 100644
--- a/plugins/example_history.c
+++ b/plugins/example_history.c
@@ -68,11 +68,11 @@ static void example_history_call_ended(struct
ofono_history_context *context,
        else
                ofono_debug("From: %s", from);

-       strftime(buf, 127, "%a, %d %b %Y %H:%M:%S %z", localtime(&start));
+       strftime(buf, 127, "%Y-%m-%dT%H:%M:%S%z", localtime(&start));
        buf[127] = '\0';
        ofono_debug("StartTime: %s", buf);

-       strftime(buf, 127, "%a, %d %b %Y %H:%M:%S %z", localtime(&end));
+       strftime(buf, 127, "%Y-%m-%dT%H:%M:%S%z", localtime(&end));
        buf[127] = '\0';
        ofono_debug("EndTime: %s", buf);
  }
@@ -96,7 +96,7 @@ static void example_history_call_missed(struct
ofono_history_context *context,
                from = phone_number_to_string(&call->phone_number);

        ofono_debug("From: %s", from);
-       strftime(buf, 127, "%a, %d %b %Y %H:%M:%S %z", localtime(&when));
+       strftime(buf, 127, "%Y-%m-%dT%H:%M:%S%z", localtime(&when));
        buf[127] = '\0';
        ofono_debug("When: %s", buf);
  }
diff --git a/src/sms.c b/src/sms.c
index 141f288..e02ac85 100644
--- a/src/sms.c
+++ b/src/sms.c
@@ -467,11 +467,11 @@ static void dispatch_text_message(struct ofono_sms
*sms,

        ts = sms_scts_to_time(scts, &remote);

-       strftime(buf, 127, "%a, %d %b %Y %H:%M:%S %z", localtime(&ts));
+       strftime(buf, 127, "%Y-%m-%dT%H:%M:%S%z", localtime(&ts));
        buf[127] = '\0';
        ofono_dbus_dict_append(&dict, "LocalSentTime", DBUS_TYPE_STRING, &str);

-       strftime(buf, 127, "%a, %d %b %Y %H:%M:%S %z", &remote);
+       strftime(buf, 127, "%Y-%m-%dT%H:%M:%S%z", &remote);
        buf[127] = '\0';
        ofono_dbus_dict_append(&dict, "SentTime", DBUS_TYPE_STRING, &str);

diff --git a/src/voicecall.c b/src/voicecall.c
index eff6321..3f70f9e 100644
--- a/src/voicecall.c
+++ b/src/voicecall.c
@@ -164,7 +164,7 @@ static const char *time_to_str(const time_t *t)
  {
        static char buf[128];

-       strftime(buf, 127, "%a, %d %b %Y %H:%M:%S %z", localtime(t));
+       strftime(buf, 127, "%Y-%m-%dT%H:%M:%S%z", localtime(t));
        buf[127] = '\0';

        return buf;
diff --git a/unit/test-sms.c b/unit/test-sms.c
index ac4f1ff..9c1528c 100644
--- a/unit/test-sms.c
+++ b/unit/test-sms.c
@@ -59,12 +59,12 @@ static void print_scts(struct sms_scts *scts, const
char *prefix)

        ts = sms_scts_to_time(scts, &remote);

-       strftime(buf, 127, "%a, %d %b %Y %H:%M:%S %z", localtime(&ts));
+       strftime(buf, 127, "%Y-%m-%dT%H:%M:%S%z", localtime(&ts));
        buf[127] = '\0';

        g_print("local time: %s\n", buf);

-       strftime(buf, 127, "%a, %d %b %Y %H:%M:%S %z", &remote);
+       strftime(buf, 127, "%Y-%m-%dT%H:%M:%S%z", &remote);
        buf[127] = '\0';

        g_print("remote time: %s\n", buf);
-- 
1.6.3.3




_______________________________________________
ofono mailing list
[email protected]
http://lists.ofono.org/listinfo/ofono

Reply via email to