ros::time转化为当地数字形式年月日时分秒毫秒并通过cout打印
时间: 2024-01-21 11:17:45 浏览: 20
可以使用以下代码将 `ros::Time` 转换为本地日期和时间格式:
```cpp
#include <iostream>
#include <ctime>
#include <chrono>
#include <iomanip>
#include <ros/ros.h>
int main(int argc, char** argv)
{
ros::init(argc, argv, "time_example");
ros::NodeHandle nh;
// Get current time
ros::Time current_time = ros::Time::now();
// Convert to system time
std::time_t current_time_t = current_time.toSec();
std::tm* local_time = std::localtime(¤t_time_t);
// Convert to milliseconds
std::chrono::milliseconds ms =
std::chrono::duration_cast<std::chrono::milliseconds>(
std::chrono::nanoseconds(current_time.nsec));
// Print local date and time with milliseconds
std::cout << "Local date and time with milliseconds: ";
std::cout << local_time->tm_year + 1900 << "/"
<< std::setfill('0') << std::setw(2) << local_time->tm_mon+1 << "/"
<< std::setfill('0') << std::setw(2) << local_time->tm_mday << " "
<< std::setfill('0') << std::setw(2) << local_time->tm_hour << ":"
<< std::setfill('0') << std::setw(2) << local_time->tm_min << ":"
<< std::setfill('0') << std::setw(2) << local_time->tm_sec << "."
<< std::setfill('0') << std::setw(3) << ms.count() << std::endl;
return 0;
}
```
输出将类似于:
```
Local date and time with milliseconds: 2021/10/01 12:34:56.789
```