相关疑难解决方法(0)

以毫秒为单位捕获时间

以下代码用于在日志中打印时间:

#define PRINTTIME() struct tm  * tmptime;
time_t     tmpGetTime;
time(&tmpGetTime);
tmptime = localtime(&tmpGetTime);
cout << tmptime->tm_mday << "/" <<tmptime->tm_mon+1 << "/" << 1900+tmptime->tm_year << " " << tmptime->tm_hour << ":" << tmptime->tm_min << ":" << tmptime->tm_sec<<">>";
Run Code Online (Sandbox Code Playgroud)

有没有办法为此添加毫秒?

c++ stl resolution timer

12
推荐指数
2
解决办法
5万
查看次数

Linux中的C++相当于Python的time.time()?

我有一个Python程序和一个C++程序.他们通过IPC进行通信.

Python将向C++程序发送JSON {"event_time":time.time()}.

C++程序将记录此时间,并根据通过Python发送的时间将事件插入到自己的事件队列中.我需要从Python和c ++中比较和减去两个时间值的操作.

Python的time.time()是一个简单的双数,可以轻松地进行比较和排序(例如,它类似于1428657539.065105).

C++中有没有与此值相同的东西?他们至少应该同意毫秒精度而不是秒精度?即,如果我在同一时间执行这两个程序,它们应该以秒为单位获得相同的值,并在毫秒范围内获得微小的差异.

如果没有,那么我必须回归使用年,月,日,小时,分钟,证券交易所,MILLISECOND策略.比较,两个时间值之间的减法等将比双重比较和双减法更难.

c++ python linux

6
推荐指数
1
解决办法
1369
查看次数

在后续调用中为时间戳获取相同的值

每当我调用这个函数时,我试图在浮点数中将unix时间戳达到毫秒,这可能是30次/秒.下面的函数返回的时间戳总是相同的,但是当我打印它时,std::cerr我获得不同的值.我每次调用函数时都在创建变量,所以我不确定我在这里做错了什么.任何帮助将不胜感激.

    float GetUnixTimestamps()
    {
        float milliseconds_since_epoch =
        std::chrono::duration_cast<std::chrono::milliseconds>
        (std::chrono::system_clock::now().time_since_epoch()).count();

    std::cerr << milliseconds_since_epoch << std::endl;
    return milliseconds_since_epoch;
    }
Run Code Online (Sandbox Code Playgroud)

编辑:根据建议我使用C++ 11并需要在Windows x64,x86和Linux(主要是Ubuntu和CentOS)上编译它.我想在unix中获取当前时间.我已经阅读了SO帖子1955512116177295,但时间戳的值仍然保持不变.

c++ c++-chrono

4
推荐指数
1
解决办法
139
查看次数

使用 C++ 将时间戳转换为格式化的日期时间

我只能使用 C++ 标准库 (C++14) 将时间戳转换为给定格式的日期时间。我刚接触 C++,我知道 C++ 并没有通过像 Java 这样的库为我们提供很多支持。在中欧时区 (CET)的给定日期和时间2011-03-10 11:23:56,将产生以下标准格式输出:“ 2011-03-10T11:23:56.123+0100 ” .

std::string format = "yyyy-MM-dd'T'HH:mm:ss'.'SSSZ"; //default format
auto duration = std::chrono::system_clock::now().time_since_epoch();
auto timestamp = std::chrono::duration_cast<std::chrono::milliseconds>(duration).count();
Run Code Online (Sandbox Code Playgroud)

我的格式字符串的语法是

G : Era 
yy,yyyy : year (two digits/four digits) 
M,MM : month in number (without zero/ with zero) - (e.g.,1/01) 
MMM,MMMM : month in text (shortname/fullname)- (e.g.,jan/january) 
d,dd : day in month (without zero/with zero)- (e.g.,1/01) 
D : day in year
F : day of week …
Run Code Online (Sandbox Code Playgroud)

c++ timestamp formatdatetime c++-chrono c++14

3
推荐指数
1
解决办法
1万
查看次数

在C ++中使用put_time以毫秒精度获取当前时间

我正在使用以下代码来获取C ++中的当前时间。

std::time_t t = std::time(nullptr);
std::time(&t);
std::cout << std::put_time(std::localtime(&t), "%X,");
Run Code Online (Sandbox Code Playgroud)

但是,这给了我时间HH :: MM :: SS。但是对于我的应用程序,我还想包含毫秒数。反正有使用std :: put_time获得类似HH :: MM :: SS :: msecs的东西吗?

或者在C ++程序中有几种方法可以使系统时间达到毫秒精度?

c++ c++-chrono

3
推荐指数
1
解决办法
160
查看次数

如何在C++中以毫秒为单位获取当前时间?

问题是,我必须以方便的格式以毫秒为单位获取当前时间.

期望输出的示例:

21小时04分12秒512毫秒

我知道如何在几秒钟内获得这种格式,但我不知道如何让我的手在几毫秒?

c++ time milliseconds

1
推荐指数
1
解决办法
1993
查看次数

在C ++中将毫秒转换为小时:分钟:秒:毫秒

我正在寻找一种使用C ++以这种格式打印毫秒的方法:

cout << hours << " Hours : " << minutes << " Minutes : " << seconds << " Seconds : " << milliseconds << " Milliseconds" << endl;
Run Code Online (Sandbox Code Playgroud)

我知道对此有很多重复的问题。但是他们都没有真正处理如何以毫秒为单位获取余数。有一些使用Java来做到这一点,但我想要一个C ++解决方案。

编辑:

我想澄清这个问题。我希望获取一个时间值,该时间值是程序运行并以清晰的格式为用户打印该时间所需的时间。获得标准的hr:min:sec很简单。但是,包括所有剩余的毫秒数会使我震惊。

c++

0
推荐指数
3
解决办法
5774
查看次数