C語言中轉換時間格式為JSON格式,需要使用一些轉換庫和代碼。JSON格式時間的標準格式為:
{ "timestamp": "2021-05-27T14:32:10+00:00", "tz": "UTC" }
其中,timestamp為ISO 8601時間格式,包含時區信息。tz為時區信息,可以使用時區縮寫,如“UTC”。
下面是使用C語言將時間轉換為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庫,這是一個輕量級的JSON庫,可以用來生成和解析JSON字符串。在time_to_json函數中,首先使用gmtime函數將時間轉換為UTC時間。然后使用strftime函數將時間轉換為ISO 8601時間格式,并將其存儲在buf中。
接著,使用cJSON_CreateObject函數創建一個JSON對象,并使用cJSON_AddStringToObject函數將時間戳和時區添加到JSON對象中。在最后使用cJSON_Print函數將JSON對象打印成字符串,并使用cJSON_Delete函數釋放內存。
在主函數中,我們調用time函數獲取當前時間,并將其傳遞給time_to_json函數。time_to_json函數返回JSON字符串,并通過printf函數打印出來。最后,使用free函數釋放JSON字符串的內存。
上一篇vue+編碼規范