【发布时间】:2012-09-15 23:29:33
【问题描述】:
我确定这个问题在其他地方得到了解答,但我在 Google 或 SO 上找不到,所以就这样吧。
在 C/C++ 中,我想以 dd-hh:mm:ss 提供的格式转换相对时间
ps -o etime
到一个绝对 UTC 格式的日期。
这看起来应该不是很难。假设我已经有了一个函数来生成以 struct tm 格式存储的相对时间:
struct tm *starting_rel_time = my_reltime_converstion(...);
time_t t = time(0);
struct tm *current_abs_time = localtime(&t);
我想要的基本上是 difftime 的反面:
struct *tm starting_abs_time = current_abs_time - starting_rel_time;
现在,我可以编写自己的函数来进行转换,但由于所有进位操作和特殊条件(闰年等),这是一场噩梦。在 C/C++ 库中肯定有办法做到这一点吗?
【问题讨论】:
-
你可以看看 boost 日期时间库。 boost.org/doc/libs/1_51_0/doc/html/date_time.html
-
您问的是 C 还是 C++?它们是不同的语言,每种语言都有不同的库。
-
澄清一下:我更喜欢用 C 编写它,或者使用类似 C 的 C++ 库(例如 time.h),但如果它们做得更好,可以使用其他 C++ 库。跨度>