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