将自午夜以来的毫秒转换为时间对象
Convert milliseconds since midnight into a time object
我有一个传入的数据馈送,它给了我一个int,从午夜开始的毫秒数。
我想把它转换成某种时间对象,这样我就可以显示时间了。
例如,1000=00:00:01
有简单的方法吗?我需要时间结构吗?
谢谢!
x = ms / 1000
seconds = x % 60
x /= 60
minutes = x % 60
x /= 60
hours = x % 24
然后您可以cout
为您解析的时间。这只是从午夜开始的持续时间。它不会显示日期。
您可以使用一个小的辅助结构来实现这一点,但对于您的简单请求来说,这可能有点太多了:
#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;
}
相关文章:
- 如何将包含epoch时间的十六进制字符串转换为time_t
- 如何正确将字符串转换为标准::时间::system_clock::time_point?
- C++:如何将 unix 时间的字符串转换为 *tm?(使用时间错误:"cannot convert 'String' to 'tm*' ")
- 如何将时间字符串 (M:SS) 转换为浮点数
- 将 hh:mm:ss.zzz 时间 QString 转换为毫秒的单行函数?
- 将字符数组转换为时间结构
- 编译时间文本到数字转换 (atoi)
- 如何将我的每个矢量字符串转换为纪元时间日期
- 将 unix 时间戳转换为人类可读的日期
- 没有从"int"到"时间"的可行转换
- 将毫秒转换为给定格式的持续时间
- 使用 C++将时间戳转换为格式化的日期时间
- 如何将 time-uuid(存储在 boost uuid 中)转换为时间戳/自纪元以来的时间?
- 从双秒到标准::时间:steady_clock::d的简短转换?
- 时间转换为 24 小时格式 cpp
- 将 boost:::chrono::steady_clock::time_point 转换为标准::时间::steady
- C++:将Unix时间转换为非本地时区
- 将日期字符串转换为 unix 时间戳
- 递归基转换时间复杂度分析
- 是否有简单的方法在C/ c++中获得Linux下的夏令时转换时间?