在 c++ 中获取 X 毫秒前的时间戳
Get timestamp from X milliseconds ago in c++
我正在尝试从X毫秒前获取Linux时间戳。
我知道你可以做这样的事情几秒钟:
time_t old_time = difftime(time(nullptr), num_seconds)
但是,我正在尝试以毫秒为单位获取时间戳(即从纪元开始的时间(,不幸的是,difftime/time(nullptr( 似乎只能以秒为单位。
我也看到了一些关于使用 std::chrono::system_clock 的想法,但我无法让它发挥作用,我认为我的铸造方式/等方式有些错误。 这是我尝试的示例(我的第一步,甚至没有编译(:
Clock::time_point time = Clock::now();
std::chrono::system_clock::duration diff =
std::chrono::duration<int,std::milli>(100);
time = time - diff;
time_t final_timestamp = std::chrono::duration_cast<std::chrono::milliseconds>(time.time_since_epoch()).count();
有谁知道这个问题的简单解决方案?提前感谢!
#include <chrono>
#include <iostream>
int
main()
{
using namespace std::chrono;
auto old_time = time_point_cast<milliseconds>(system_clock::now()) - 100ms;
std::cout << old_time.time_since_epoch().count() << "msn";
}
这将获取当前时间 UTC,将其截断为毫秒精度,然后从该时间点减去 100 毫秒。
然后,它提取基础值并将其打印出来(自 1970-01-01 00:00:00.000 UTC 以来的毫秒数(。
这应该会有所帮助
#include <iostream>
#include <time.h>
using namespace std;
int main(int argc,char** argv){
clock_t start_time = clock();
const long int REPEAT_CYCLES = 500000000;
int result = 0;
for(long int i=0;i<REPEAT_CYCLES;i++)
result = (result > 1000) ? result-1 : result+1;
clock_t finish_time = clock();
cout << "WORK EXECUTION TIME: " << (double)(finish_time - start_time)/1000 << "ms" << endl;
return EXIT_SUCCESS;
}
相关文章:
- C++:floor unix时间戳到UTC月份
- 如何在c++中录制具有精确帧时间戳的视频
- 在两台机器之间进行时间戳的最佳c++chrono函数是什么
- Google protobuf 时间戳未声明标识符,在 Windows 上具有C++
- 在多个时间戳处执行函数
- 以天C++为单位的两个时间戳之间的差异
- 获取 QInputEvent 在 Qt 4.8 中被放入 QEventLoop 队列时的时间戳
- 在 C++ 中为文件名添加时间戳
- 如何从远程 SFTP 服务器获取 HH-MM-SS 时间戳格式的文件列表
- 如何将消息时间戳写入日志文件?
- 将时间戳打印到流的最简单方法
- 读取悖论时间戳字段
- C++程序中多个位置的时间 (0) 时间戳
- 在 c++ 中获取 X 毫秒前的时间戳
- 将 unix 时间戳转换为人类可读的日期
- Microsoft NTLM (v2) 中的时间戳使用
- C++中上周一的时间戳
- C++-需要读取存储在文件(.txt)中的时间戳并正确检索
- 使用 C++将时间戳转换为格式化的日期时间
- 如何将 time-uuid(存储在 boost uuid 中)转换为时间戳/自纪元以来的时间?