C語(yǔ)言中轉(zhuǎn)換時(shí)間格式為JSON格式,需要使用一些轉(zhuǎn)換庫(kù)和代碼。JSON格式時(shí)間的標(biāo)準(zhǔn)格式為:
{ "timestamp": "2021-05-27T14:32:10+00:00", "tz": "UTC" }
其中,timestamp為ISO 8601時(shí)間格式,包含時(shí)區(qū)信息。tz為時(shí)區(qū)信息,可以使用時(shí)區(qū)縮寫(xiě),如“UTC”。
下面是使用C語(yǔ)言將時(shí)間轉(zhuǎn)換為JSON格式的代碼:
#include <time.h> #include <stdio.h> #include <stdlib.h> #include <stddef.h> #include <cjson/cJSON.h> char* time_to_json(time_t t) { struct tm* tm = gmtime(&t); char buf[32]; strftime(buf, sizeof(buf), "%Y-%m-%dT%H:%M:%S", tm); char* json_str; cJSON* json; json = cJSON_CreateObject(); cJSON_AddStringToObject(json, "timestamp", buf); cJSON_AddStringToObject(json, "tz", "UTC"); json_str = cJSON_Print(json); cJSON_Delete(json); return json_str; } int main(int argc, char* argv[]) { char* json_str; time_t t = time(NULL); json_str = time_to_json(t); printf("%s\n", json_str); free(json_str); return 0; }
代碼中使用了cJSON庫(kù),這是一個(gè)輕量級(jí)的JSON庫(kù),可以用來(lái)生成和解析JSON字符串。在time_to_json函數(shù)中,首先使用gmtime函數(shù)將時(shí)間轉(zhuǎn)換為UTC時(shí)間。然后使用strftime函數(shù)將時(shí)間轉(zhuǎn)換為ISO 8601時(shí)間格式,并將其存儲(chǔ)在buf中。
接著,使用cJSON_CreateObject函數(shù)創(chuàng)建一個(gè)JSON對(duì)象,并使用cJSON_AddStringToObject函數(shù)將時(shí)間戳和時(shí)區(qū)添加到JSON對(duì)象中。在最后使用cJSON_Print函數(shù)將JSON對(duì)象打印成字符串,并使用cJSON_Delete函數(shù)釋放內(nèi)存。
在主函數(shù)中,我們調(diào)用time函數(shù)獲取當(dāng)前時(shí)間,并將其傳遞給time_to_json函數(shù)。time_to_json函數(shù)返回JSON字符串,并通過(guò)printf函數(shù)打印出來(lái)。最后,使用free函數(shù)釋放JSON字符串的內(nèi)存。