欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

c json時間格式轉(zhuǎn)換

劉姿婷2年前8瀏覽0評論

JSON(JavaScript Object Notation)是一種輕量級的數(shù)據(jù)交換格式,通常用于前后端數(shù)據(jù)傳輸。在 JSON 格式中,時間也是一種常見的數(shù)據(jù)類型。但是,在前后端交互過程中,往往需要進(jìn)行時間格式的轉(zhuǎn)換。下面,我們介紹一下如何在 C 語言中進(jìn)行 JSON 時間格式轉(zhuǎn)換。

#include <stdlib.h>
#include <stdio.h>
#include <time.h>
#include <json-c/json.h>
#define TIME_FORMAT "%Y-%m-%d %H:%M:%S"
int main(void) {
char t_str[20] = "2022-08-18 14:20:00";
json_object *jobj, *jtime;
struct tm tm_t;
time_t t;
strptime(t_str, TIME_FORMAT, &tm_t); // 字符串轉(zhuǎn)換為時間結(jié)構(gòu)體
t = mktime(&tm_t); // 時間結(jié)構(gòu)體轉(zhuǎn)換為時間戳
jobj = json_object_new_object();
jtime = json_object_new_int64(t * 1000); // 時間戳乘以1000轉(zhuǎn)換為毫秒級別
json_object_object_add(jobj, "time", jtime); // 添加時間
printf("JSON string: %s\n", json_object_to_json_string(jobj)); // 輸出 JSON 字符串
json_object_put(jobj); // 釋放 JSON 對象
return 0;
}

在上述代碼中,我們首先定義了一個時間字符串 t_str,然后使用 strptime 函數(shù)將其轉(zhuǎn)換為 time.h 庫中的結(jié)構(gòu)體 tm_t。接著,使用 mktime 函數(shù)將 tm_t 結(jié)構(gòu)體轉(zhuǎn)換為時間戳 t。注意,時間戳的單位是秒,而在 JSON 格式中,時間戳的單位通常為毫秒。因此,在轉(zhuǎn)換為 JSON 格式之前,我們需要將時間戳乘以 1000,以轉(zhuǎn)換為毫秒級別的時間戳。

接著,使用 json-c 庫中的函數(shù)創(chuàng)建一個新的 JSON 對象 jobj,并創(chuàng)建一個名為 “time” 的子對象 jtime,并將其添加到 jobj 對象中。最后,使用函數(shù) json_object_to_json_string 將 jobj 對象轉(zhuǎn)換為字符串形式,并輸出到控制臺上。

使用上述代碼,我們可以很方便地將時間格式從字符串轉(zhuǎn)換為 JSON 格式。當(dāng)然,在實際開發(fā)中,我們還需要對 JSON 格式的時間進(jìn)行反向轉(zhuǎn)換,將其從毫秒級別的時間戳轉(zhuǎn)換為字符串形式的時間。在此處,我們不再一一介紹,讀者可以參考 json-c 庫的官方文檔進(jìn)行學(xué)習(xí)。