c++ 获取当前时间戳并转换为字符
时间: 2023-07-02 10:19:13 浏览: 106
在C++中可以使用time和ctime函数获取当前时间,并将其转换为字符数组。具体实现如下:
```c++
#include <iostream>
#include <ctime>
#include <cstring>
int main() {
std::time_t timestamp = std::time(nullptr);
char time_str[26];
std::strcpy(time_str, std::ctime(×tamp));
std::cout << "当前时间为:" << time_str << std::endl;
return 0;
}
```
其中,std::ctime函数可以将时间戳转换为本地时间的字符数组,其格式为"Day Mon dd hh:mm:ss yyyy"。time_str为输出的字符串,大小为26字节,足够存储当前时间的字符串表示。
相关问题
c++ 获取当前时间戳并转换为字符串
在C++中可以使用time和strftime函数获取当前时间,并将其转换为字符串。具体实现如下:
```c++
#include <iostream>
#include <ctime>
#include <cstring>
int main() {
std::time_t timestamp = std::time(nullptr);
char time_str[20];
std::strftime(time_str, sizeof(time_str), "%Y-%m-%d %H:%M:%S", std::localtime(×tamp));
std::cout << "当前时间为:" << time_str << std::endl;
return 0;
}
```
其中,strftime函数可以将时间戳转换为指定格式的字符串。"%Y-%m-%d %H:%M:%S"表示输出的时间格式为年-月-日 时:分:秒。std::localtime函数可以将时间戳转换为本地时间。time_str为输出的字符串,大小为20字节,足够存储当前时间的字符串表示。
c++ 获取当前时间戳并转换为字符串,精确到毫秒
在C++中获取当前时间戳可以使用`std::chrono::system_clock::now()`,它返回一个`std::chrono::time_point`类型的对象,表示当前时间点。而要将其转换为字符串,需要使用`std::put_time`函数将时间点转换为`std::tm`类型的结构体,再使用`std::strftime`函数将`std::tm`类型的结构体转换为字符串。具体实现如下:
```c++
#include <iostream>
#include <chrono>
#include <ctime>
#include <iomanip>
#include <cstring>
int main() {
auto now = std::chrono::system_clock::now();
auto now_ms = std::chrono::time_point_cast<std::chrono::milliseconds>(now);
auto value = now_ms.time_since_epoch().count();
std::time_t t = value / 1000;
std::size_t fractional_seconds = value % 1000;
std::tm* now_tm = std::localtime(&t);
char time_str[30];
std::strftime(time_str, sizeof(time_str), "%Y-%m-%d %H:%M:%S", now_tm);
std::sprintf(time_str + std::strlen(time_str), ".%03d", static_cast<int>(fractional_seconds));
std::cout << "当前时间为:" << time_str << std::endl;
return 0;
}
```
其中,`auto now = std::chrono::system_clock::now();`获取当前时间点,`auto now_ms = std::chrono::time_point_cast<std::chrono::milliseconds>(now);`将时间点精确到毫秒级别,`auto value = now_ms.time_since_epoch().count();`获取时间戳,单位为毫秒。
接下来,`std::time_t t = value / 1000;`将时间戳转换为`std::time_t`类型,`std::size_t fractional_seconds = value % 1000;`获得毫秒数。
然后,使用`std::localtime`函数将时间戳转换为本地时间,再使用`std::strftime`函数将时间转换为字符串。最后使用`std::sprintf`函数将毫秒数添加到字符串中,输出结果即可。
阅读全文