C語言中,我們可以用第三方庫 cJSON 來處理 JSON 數(shù)據(jù)格式。在處理 JSON 數(shù)據(jù)時(shí),我們經(jīng)常需要涉及到時(shí)間格式的轉(zhuǎn)換,下面簡單介紹一下 cJSON 中關(guān)于時(shí)間格式的使用。
// 創(chuàng)建一個(gè) JSON 對象 cJSON *root = cJSON_CreateObject(); // 添加一個(gè)時(shí)間格式的數(shù)據(jù),比如 "2020-09-24 15:36:38" cJSON_AddStringToObject(root, "time", "2020-09-24 15:36:38"); // 獲取該 JSON 對象中的時(shí)間數(shù)據(jù) char *time_str = cJSON_GetObjectItem(root, "time")->valuestring; // 將時(shí)間字符串轉(zhuǎn)換為時(shí)間戳 struct tm stm; strptime(time_str, "%Y-%m-%d %H:%M:%S", &stm); time_t timestamp = mktime(&stm);
在上面的代碼中,我們通過 cJSON 創(chuàng)建了一個(gè) JSON 對象,然后添加了一個(gè)時(shí)間格式的字符串?dāng)?shù)據(jù)。接著我們通過 cJSON_GetObjectItem 獲取該 JSON 對象中的時(shí)間數(shù)據(jù),并將其轉(zhuǎn)換為 struct tm 類型的時(shí)間格式。最后,我們再利用 mktime 函數(shù)將該時(shí)間轉(zhuǎn)換為時(shí)間戳。
當(dāng)然,cJSON 也支持將時(shí)間戳轉(zhuǎn)換為時(shí)間字符串的功能。
// 將時(shí)間戳轉(zhuǎn)換為時(shí)間字符串 char *time_str = format_time("%Y-%m-%d %H:%M:%S", timestamp); // 將時(shí)間字符串添加到 JSON 對象中 cJSON_AddStringToObject(root, "time", time_str);
上面的代碼中,我們通過 format_time 函數(shù)將時(shí)間戳轉(zhuǎn)換為時(shí)間字符串,再將其添加到 JSON 對象中。
總之,在使用 cJSON 處理 JSON 數(shù)據(jù)時(shí),我們可以通過上述方式來處理時(shí)間格式數(shù)據(jù)。希望這篇文章對大家有所幫助。