在C中,通過使用json-c庫,我們可以輕松地將JSON數據格式化為字符串或將JSON字符串解析為C數據結構。在JSON數據中,日期可能顯示為如下格式:
"2019-08-21T08:30:00Z"
其中“T”表示時間,“Z”表示時區(UTC時間)。在C中,我們可以使用以下代碼來解析這個JSON字符串:
json_object *obj = json_tokener_parse(str); const char *date_str = json_object_get_string(json_object_object_get(obj, "date"));
使用json_object_get_string函數可以獲取JSON對象的字符串值。然而,在C中,日期只是一種數值類型(time_t),因此我們需要將日期字符串轉換為C日期格式。
struct tm date; memset(&date, 0, sizeof(date)); strptime(date_str, "%Y-%m-%dT%H:%M:%SZ", &date); time_t t = mktime(&date);
在這里,我們使用strptime函數將日期字符串解析為C struct tm格式。然后,我們使用mktime函數將struct tm轉換為Unix時間戳(time_t類型)。現在,我們可以使用ctime函數將時間戳轉換為人類可讀的日期字符串:
char *date_str_formatted = ctime(&t); printf("日期:%s", date_str_formatted);
注意,在上面的代碼中,我們使用了“ctime”函數而不是“strftime”。這是因為“ctime”函數將日期格式化為本地時間格式,而“strftime”函數將日期格式化為指定格式的字符串。
通過使用C和json-c庫,我們可以輕松地解析JSON中的日期并將其格式化為人類可讀的字符串。
上一篇c json格式化類
下一篇vue - cli 入門