Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/148.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何在C++;?_C++_Timestamp - Fatal编程技术网

C++ 如何在C++;?

C++ 如何在C++;?,c++,timestamp,C++,Timestamp,我试过在网上找到的其他代码,但都不起作用。我的IDE是Xcode。 编辑:当我在链接上尝试代码时,变量long microseconds总是返回0。 我想以这种方式打印时间戳:(小时:分钟:微秒)。例如,15:17:09:134613464312。您使用的方法是正确的 如果两个now()调用之间的代码持续时间少于一微秒,微秒将始终为零,因为该数字不是浮点。如果始终为零,则意味着您需要更高的分辨率(尝试纳秒) 顺便说一句,如果您只是想要时间戳,您不想使用此代码,因为它是用来计算两个时间点之间经过的

我试过在网上找到的其他代码,但都不起作用。我的IDE是Xcode。 编辑:当我在链接上尝试代码时,变量long microseconds总是返回0。
我想以这种方式打印时间戳:(小时:分钟:微秒)。例如,15:17:09:134613464312。

您使用的方法是正确的

如果两个now()调用之间的代码持续时间少于一微秒,微秒将始终为零,因为该数字不是浮点。如果始终为零,则意味着您需要更高的分辨率(尝试纳秒)

顺便说一句,如果您只是想要时间戳,您不想使用此代码,因为它是用来计算两个时间点之间经过的时间的。您可以尝试以下方法:

auto microseconds = std::chrono::duration_cast<std::chrono::microseconds>
    (std::chrono::high_resolution_clock::now().time_since_epoch()).count();
#include <iostream>
#include <chrono>
#include <ctime>

using namespace std;
using namespace std::chrono;

using days = duration<int, ratio_multiply<hours::period, ratio<24> >::type>;

int main() {
    system_clock::time_point now = system_clock::now();
    system_clock::duration tp = now.time_since_epoch();
    days d = duration_cast<days>(tp);
    tp -= d;
    hours h = duration_cast<hours>(tp);
    tp -= h;
    minutes m = duration_cast<minutes>(tp);
    tp -= m;
    seconds s = duration_cast<seconds>(tp);
    tp -= s;
    cout << tp.count() << "\n";
    return 0;
}
auto microseconds=std::chrono::duration\u cast
(std::chrono::高分辨率时钟::now().time\u-since\u-epoch()).count();
这实际上是一个时间戳,而不是持续时间

编辑:要计算当前微秒数,可以执行以下操作:

auto microseconds = std::chrono::duration_cast<std::chrono::microseconds>
    (std::chrono::high_resolution_clock::now().time_since_epoch()).count();
#include <iostream>
#include <chrono>
#include <ctime>

using namespace std;
using namespace std::chrono;

using days = duration<int, ratio_multiply<hours::period, ratio<24> >::type>;

int main() {
    system_clock::time_point now = system_clock::now();
    system_clock::duration tp = now.time_since_epoch();
    days d = duration_cast<days>(tp);
    tp -= d;
    hours h = duration_cast<hours>(tp);
    tp -= h;
    minutes m = duration_cast<minutes>(tp);
    tp -= m;
    seconds s = duration_cast<seconds>(tp);
    tp -= s;
    cout << tp.count() << "\n";
    return 0;
}
#包括
#包括
#包括
使用名称空间std;
使用名称空间std::chrono;
使用天数=持续时间;
int main(){
系统时钟::时间点现在=系统时钟::现在();
系统时钟::持续时间tp=now.time_自_epoch()起;
d天=持续时间(tp);
tp-=d;
小时h=持续时间(tp);
tp-=h;
分钟m=持续时间(tp);
tp-=m;
秒s=持续时间(tp);
tp-=s;

它现在是如何工作的?您遇到了什么问题?如果有什么错误?如果它正确构建,没有警告,您期望得到什么结果?您得到了什么?“没有工作”-您尝试它们时发生了什么?您是否收到编译器错误消息(如果是,是什么),或可疑的运行时值?顺便说一句-对于链接的解决方案,您需要一个支持C++11的编译器,并启用C++11支持-你还应该描述他们?这里的人浪费时间向你提供你已经尝试过的答案有什么用?如果你展示你尝试过的东西,他们可能会看到你的错误并提供一些有针对性的建议。请检查此项。感谢你的快速回答。我想用以下方式展示:(小时:分钟:微秒)。例如,15:17:09:134613464312。如果您也能告诉我如何操作,我将不胜感激。很抱歉,我不太准确。您想要一个时间戳还是当前时间?这其实不是一回事。如果您想要显示时间戳,则显示时间没有意义,因为它超过45年。我为混淆感到抱歉。我想要他给出了示例中的精确当前时间。