比较c ++中的两个ISO 8601

时间:2012-12-19 01:57:16

标签: c++ c++11

我想要一个比较两个ISO 6801时间戳并返回最新时间戳的函数。我无法找到一种简单的方法来创建一个函数

例如,给定string s1 = 2012-10-10 09:42:00;string s2 = 2012-10-10 09:52:00;

compare_timestamp(s1,s2)将返回s2

2 个答案:

答案 0 :(得分:4)

如果你只需要找到更新的,那么字符串比较就足够了。

string &compare_timestamp(string &s1, string &s2) {
    return s1.compare(s2) > 0 ? s1 : s2;
}

答案 1 :(得分:2)

std::string & compare_timestamp(std::string & lhs, std::string & rhs) {
    return std::max(lhs, rhs);
}
std::string const & compare_timestamp(std::string const & lhs, std::string const & rhs) {
    return std::max(lhs, rhs);
}

现在,更好的解决方案是创建TimeStamp类,而不是直接使用std::stringTimeStamp可以在内部持有std::string并重载operator<,只需按std::string::operator<,但您将使用strong types