我应该如何使用C将time_t时间戳存储到文件中?

Laz*_*zer 6 c time file-io datetime file

对于我正在编写的小型todo程序,我有这种形式的时间戳

time_t t = time(NULL);
Run Code Online (Sandbox Code Playgroud)

每次输入任务时都会保存,以表示输入的时间.

我想将任务存储到纯文本文件中,以便可以保存和恢复状态.我应该如何将时间戳存储到文本文件中,以及在阅读文本文件后如何将它们恢复到我的程序中?

mu *_*ort 12

转换time_tstruct tm使用gmtime(),然后使用转换struct tm为纯文本(最好是ISO 8601格式)strftime().结果将是可移植的,人类可读的和机器可读的.

要返回到time_t,您只需将字符串解析为a struct tm并使用mktime().

以供参考:

代码示例:

// Converting from time_t to string
time_t t = time(NULL);
struct tm *ptm = gmtime(&t);
char buf[256];
strftime(buf, sizeof buf, "%F %T", ptm);
// buf is now "2015-05-15 22:55:13"

// Converting from string to time_t
char *buf = "2015-05-15 22:55:13";
struct tm tm;
strptime(buf, "%F %T", &tm);
time_t t = mktime(&tm);
Run Code Online (Sandbox Code Playgroud)