【发布时间】:2021-03-29 09:56:06
【问题描述】:
我的应用程序收到一个日期和时间字符串。我需要能够解析这个字符串并将其与当前时间(以秒为单位)进行比较。
我将其解析为struct tm t,以分别获取年、月、日、小时、分钟和秒。
std::string timestr = "2020-12-18T16:40:07";
struct tm t = {0};
sscanf(timestr.c_str(), "%04d-%02d-%02dT%02d:%02d:%02d",
&t.tm_year, &t.tm_mon, &t.tm_mday,
&t.tm_hour, &t.tm_min, &t.tm_sec);
我不确定是否需要将其转换为纪元时间,但是当我这样做时,我得到 -1。我不知道为什么。
time_t t_of_day;
t_of_day = mktime(&t);
我真的需要先将其转换为纪元吗?
对我来说,获取当前时间(以秒为单位)然后将其与我在t 中获得的时间信息进行比较的最佳方法是什么?谢谢。
【问题讨论】:
-
该字符串是否代表 UTC 或某个本地时区?如果是时区,是哪个时区?