[英]How to convert `ros::Time` to string while keeping the UNIX format?
上下文:我有圖像文件,其名稱為 UNIX 時間戳,例如1341846314.694004.png
。 這些名稱對應於發布圖像的 ROS.bag 文件的消息header.stamp
。 使用 Python 我為每個圖像生成邊界框文件並使用相同的模式來命名它們,例如1341846314.694004_bb.txt
。
問題:我無法將類型為ros::Time
且格式為 UNIX 時間的 header.stamp 轉換為header.stamp
中的字符串。
到目前為止,我閱讀的每個資源都告訴我要么使用header.stamp.toSec()
(這無濟於事,因為相關信息正在丟失),或者將其轉換為其他時間格式,然后我反過來,將能夠轉換為字符串(這又不是他,因為我需要 UNIX 格式)。
時間類在Python和C++中提供秒和納秒字段。 所以你可以使用它們並將它們組合成一個字符串:
Python:
stamp = rospy.Time.now()
print(str(stamp.secs) + '.' + str(stamp.nsecs))
C++:
ros::Time stamp = ros::Time::now();
std::stringstream ss;
ss << stamp.sec << "." << stamp.nsec;
std::cout << ss.str() << std::endl;
兩種實現的 output 如下:
1612707880.149451971
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.