c++ 如何获取当前执行程序的创建时间
时间: 2024-04-21 11:22:47 浏览: 113
creatFile.zip_c/C++_创建以当前系统时间为名称的文档_获取系统当前时间
要获取当前执行程序的创建时间,你可以使用C++的标准库函数 `std::filesystem::last_write_time`。请确保你的编译器支持C++17或更高版本,因为这个函数是在C++17中引入的。
下面是一个示例代码,演示如何获取当前执行程序的创建时间:
```cpp
#include <iostream>
#include <filesystem>
#include <chrono>
int main() {
std::filesystem::path currentExecutablePath = std::filesystem::current_path() / std::filesystem::path(argv[0]);
std::filesystem::file_time_type createTime = std::filesystem::last_write_time(currentExecutablePath);
std::chrono::system_clock::time_point createTimePoint = std::chrono::time_point_cast<std::chrono::system_clock::duration>(createTime - decltype(createTime)::clock::now() + std::chrono::system_clock::now());
std::time_t createTimeT = std::chrono::system_clock::to_time_t(createTimePoint);
std::cout << "Creation Time: " << std::ctime(&createTimeT);
return 0;
}
```
在这个示例中,我们首先获取当前执行程序的路径,然后使用 `std::filesystem::last_write_time` 函数获取创建时间。由于 `last_write_time` 返回的类型是 `std::filesystem::file_time_type`,我们需要将其转换为 `std::chrono::system_clock::time_point` 类型,以便能够使用标准库的时间处理函数。
最后,我们将创建时间转换为 `std::time_t` 类型,并使用 `std::ctime` 函数将其格式化为可读的时间字符串输出。
请注意,这个方法获取的是程序执行文件的创建时间,而不是程序运行的开始时间。如果你需要获取程序运行的开始时间,可以在程序启动时使用 `std::chrono::system_clock::now()` 函数获取当前时间。
阅读全文