C++ 将午夜后的毫秒转换为时间对象

C++ 将午夜后的毫秒转换为时间对象,c++,time,C++,Time,我有一个传入的数据提要,它给我一个整数,表示从午夜开始的毫秒数 我想把它转换成某种时间对象,这样我就可以显示时间了 例如,1000=00:00:01 有没有一个简单的方法可以做到这一点?我需要时间结构吗 谢谢大家! x = ms / 1000 seconds = x % 60 x /= 60 minutes = x % 60 x /= 60 hours = x % 24 然后您可以cout为您解析的时间。这只适用于午夜之后的持续时间。它不会向您显示日期。您可以使用一个小的helper结构来完成

我有一个传入的数据提要,它给我一个整数,表示从午夜开始的毫秒数

我想把它转换成某种时间对象,这样我就可以显示时间了

例如,1000=00:00:01

有没有一个简单的方法可以做到这一点?我需要时间结构吗

谢谢大家!

x = ms / 1000
seconds = x % 60
x /= 60
minutes = x % 60
x /= 60
hours = x % 24

然后您可以
cout
为您解析的时间。这只适用于午夜之后的持续时间。它不会向您显示日期。

您可以使用一个小的helper结构来完成此操作,但对于您的简单请求来说,这可能有点太多了:

#include <iostream>
#include <iomanip>    

struct MidnightTime{
    MidnightTime(unsigned int miliseconds) : 
    seconds((miliseconds/1000) % 60), 
    minutes((miliseconds/60000) % 60),
    hours((miliseconds/3600000) % 24){}

    unsigned int seconds, minutes, hours;
};

std::ostream& operator<<(std::ostream& out, const MidnightTime& t){
    out << std::setfill('0') << std::setw(2) << t.hours << ":" <<
           std::setfill('0') << std::setw(2) << t.minutes << ":" << 
           std::setfill('0') << std::setw(2) << t.seconds;
    return out;
}

int main(){
    std::cout << MidnightTime(1000) << std::endl; // will result in 00:00:01
    return 0;
}
#包括
#包括
结构午夜{
午夜(无符号整数毫秒):
秒((毫秒/1000)%60),
分钟((毫秒/60000)%60),
小时((毫秒/3600000)%24){}
无符号整数秒、分钟、小时;
};

std::ostream&operator您需要什么特别的吗?上午/下午或类似的时间?