C++ 如何在保持UNIX格式的同时将'ros::Time'转换为字符串?

C++ 如何在保持UNIX格式的同时将'ros::Time'转换为字符串?,c++,ros,unix-timestamp,C++,Ros,Unix Timestamp,上下文: 我有一些名称为UNIX时间戳的图像文件,例如1341846314.694004.png。这些名称对应于发布图像的ROS.bag文件的消息header.stamp。 我使用Python为每个图像生成边界框文件,并使用相同的模式命名它们,例如1341846314.694004_bb.txt 问题: 我无法转换< C++ >标题> .g/>代码,即类型 ROS::时间< /> >和格式UNIX时间,到C++中的字符串。 到目前为止,我读到的每一个资源都告诉我要么使用header.stamp.

上下文: 我有一些名称为UNIX时间戳的图像文件,例如
1341846314.694004.png
。这些名称对应于发布图像的ROS.bag文件的消息
header.stamp
。 我使用Python为每个图像生成边界框文件,并使用相同的模式命名它们,例如
1341846314.694004_bb.txt

问题: 我无法转换< C++ >标题> .g/>代码,即类型<代码> ROS::时间< /> >和格式UNIX时间,到C++中的字符串。


到目前为止,我读到的每一个资源都告诉我要么使用
header.stamp.toSec()
(由于相关信息正在丢失,这并没有帮助),要么将其转换为其他时间格式,然后我就可以从中转换为字符串(因为我需要UNIX格式,所以也不需要字符串).

时间类在和中为秒和非秒提供字段。因此,您可以使用它们并将它们组合为字符串:

Python:

stamp = rospy.Time.now()
print(str(stamp.secs) + '.' + str(stamp.nsecs))
ros::Time stamp = ros::Time::now();
std::stringstream ss;
ss << stamp.sec << "." << stamp.nsec;
std::cout << ss.str() << std::endl;
C++:

stamp = rospy.Time.now()
print(str(stamp.secs) + '.' + str(stamp.nsecs))
ros::Time stamp = ros::Time::now();
std::stringstream ss;
ss << stamp.sec << "." << stamp.nsec;
std::cout << ss.str() << std::endl;
ros::Time stamp=ros::Time::now();
std::stringstream-ss;

非常有帮助!谢谢:)