【发布时间】:2021-05-02 06:18:27
【问题描述】:
我想知道如何在 C++ 中以字符串格式比较日期和时间? 换句话说,我的问题是如何使用库为以下类实现比较功能?
class DateTime {
private:
string date =;
string time ;
public :
DateTime (string d, string t) :date (d), time(t) {
}
DateTime diff (DateTime t1, DateTime t2) {
//?
}
};
假设我这样称呼它
DateTime from ("2020-11-09", "06:22:30");
DateTime to ("2021-04-03", "23:54:13");
Date diff = to.diff (from ,to);
这只是一个例子,任何比较日期和时间的建议都值得赞赏。我的限制是日期和时间以字符串格式给出,如果我能以秒或上面显示的类似字符串格式返回它们的差异,那就太好了。
我在 VScode 中尝试过这个struct,但我得到编译错误,它无法识别time_t 变量成员。
【问题讨论】:
-
请显示您尝试的代码的minimal reproducible example 以及您收到的确切错误消息
-
如果您想查看
<ctime>和<chrono>库,它们都不支持将自定义文本格式转换为时间/日期对象。您需要自己创建它们。 (我敢肯定,那里有很好的图书馆你可以寻找) -
随着进一步挖掘,您似乎可以使用
chrono::from_stream或chrono::parse为您的chrono::duration类型和C++20 自定义解析器。但是,我手头没有它来测试它。