从12小时格式到24小时格式的时间转换

问题描述 投票:0回答:1

我已编写此代码:

string timeConversion(string s) {
    string time{s[0]}, twelveAM{"12"};
    time+=s[1];

    if((s.find("PM") != string::npos) || ((s.find("AM") != string::npos) && (time.compare(twelveAM)==0)))
        s.replace(s.begin(), s.begin()+2, to_string((stoi(time)+12)%24));

    s.replace(s.end()-2, s.end(), "");
    return s;
}

[当s12:00:00AM时,我的输出为0:00:00,但应为00:00:00

其他一切正常,我很感谢您提供的解决此问题的帮助。

c++
1个回答
0
投票
我建议研究类似]的库>

https://en.cppreference.com/w/cpp/chrono

https://www.boost.org/doc/libs/1_62_0/doc/html/date_time.html

两者都应具有从您的格式到其他格式的转换工具。

根据我的经验,最好不要编写任何日期时间代码,即使最简单的代码也要使用库。在这里可以找到一种有趣的解释

https://www.youtube.com/watch?v=-5wpm-gesOY

© www.soinside.com 2019 - 2024. All rights reserved.