C語言中的日期時間格式較為簡單,通常使用time.h中的結構體time_t表示時間戳。然而,在將日期時間轉換成Json格式時,需要將時間戳轉換成字符串格式,并以指定的Json格式輸出。下面是使用C語言將日期時間轉換成Json的示例代碼:
#include#include #include #include #include char* get_time_string(time_t t) { struct tm *tm_info; char *time_str; tm_info = localtime(&t); time_str = (char*) malloc(sizeof(char)*100); strftime(time_str, 100, "%Y-%m-%dT%H:%M:%S%z", tm_info); return time_str; } int main() { time_t now = time(NULL); char *time_str = get_time_string(now); struct json_object *time_json = json_object_new_object(); json_object_object_add(time_json, "timestamp", json_object_new_int(now)); json_object_object_add(time_json, "datetime", json_object_new_string(time_str)); printf("Json output:\n%s\n", json_object_to_json_string(time_json)); json_object_put(time_json); free(time_str); return 0; }
在上述代碼中,我們首先定義了一個get_time_string函數,用于將time_t類型的時間戳轉換成字符串格式。在主函數中,我們使用time.h中的time函數獲取當前時間戳now,并使用get_time_string函數將其轉換成字符串格式time_str。接下來,我們使用json-c庫中的json_object_new_object函數創建一個json對象time_json,并使用json_object_object_add函數添加兩個屬性:timestamp和datetime分別表示時間戳和日期時間。最后,我們使用json-c庫中的json_object_to_json_string函數將Json對象轉換成字符串格式輸出。
需要注意的是,上述代碼中輸出的datetime屬性值符合ISO8601標準,并包含UTC時間偏移量。該格式在Json中較為常見,但在實際應用中可能需要根據具體需求進行調整。