C++ 时间戳转string
时间: 2023-08-04 14:35:48 浏览: 455
以下是C++中将时间戳转换为字符串的示例代码:
```c++
#include <iostream>
#include <iomanip>
#include <sstream>
#include <ctime>
std::string timestampToString(long timestamp) {
std::time_t t = timestamp;
std::tm tm = *std::localtime(&t);
std::ostringstream oss;
oss << std::put_time(&tm, "%Y-%m-%d %H:%M:%S");
return oss.str();
}
int main() {
long timestamp = 1609459200; // 时间戳
std::string stringTime = timestampToString(timestamp);
std::cout << stringTime << std::endl; // 输出:2021-01-01 00:00:00
return 0;
}
```
该示例中使用了`std::localtime`将时间戳转换为`tm`结构体,然后使用`std::put_time`将`tm`结构体格式化为字符串。最后使用`std::ostringstream`将格式化后的字符串转换为`std::string`类型。
相关问题
C++ 时间戳转string 时间格式yyyymmddhhMMss
以下是C++中将时间戳转换为格式为`yyyymmddhhMMss`的字符串的示例代码:
```c++
#include <iostream>
#include <iomanip>
#include <sstream>
#include <ctime>
std::string timestampToString(long timestamp) {
std::time_t t = timestamp;
std::tm tm = *std::localtime(&t);
std::ostringstream oss;
oss << std::put_time(&tm, "%Y%m%d%H%M%S");
return oss.str();
}
int main() {
long timestamp = 1609459200; // 时间戳
std::string stringTime = timestampToString(timestamp);
std::cout << stringTime << std::endl; // 输出:20210101000000
return 0;
}
```
该示例中使用了`std::localtime`将时间戳转换为`tm`结构体,然后使用`std::put_time`将`tm`结构体格式化为`yyyymmddhhMMss`格式的字符串。最后使用`std::ostringstream`将格式化后的字符串转换为`std::string`类型。
C++ 时间戳转string 时间格式yyyymmddhhMMss 时间戳精确到毫秒
以下是C++中将时间戳精确到毫秒,并转换为格式为`yyyymmddhhMMss`的字符串的示例代码:
```c++
#include <iostream>
#include <iomanip>
#include <sstream>
#include <ctime>
std::string timestampToString(long long timestamp) {
std::time_t t = timestamp / 1000; // 将时间戳除以1000,转换为秒级别的时间戳
std::tm tm = *std::localtime(&t);
std::ostringstream oss;
oss << std::put_time(&tm, "%Y%m%d%H%M%S");
oss << std::setfill('0') << std::setw(3) << timestamp % 1000; // 将毫秒级别的时间戳转换为3位数字,补零
return oss.str();
}
int main() {
long long timestamp = 1609459200123LL; // 时间戳,单位为毫秒
std::string stringTime = timestampToString(timestamp);
std::cout << stringTime << std::endl; // 输出:202101010000000123
return 0;
}
```
该示例中先将时间戳除以1000,转换为秒级别的时间戳,然后再使用`std::setfill`和`std::setw`将毫秒级别的时间戳转换为3位数字,并且补零。其余部分与上一题示例代码相同。
阅读全文