C++通用工具类:日期时间处理

本文最后更新于:2023年9月18日 凌晨

标题:C++通用工具类:日期时间处理

简介:
日期时间处理是许多应用程序中常见的任务之一。在C++中,我们可以编写通用的工具类来简化日期时间的操作。

正文:

1. 实现一个通用的日期时间格式化函数

1
2
3
4
5
6
7
8
9
10
11
12
#include <string>
#include <ctime>

class DateTimeUtil {
public:
static std::string format(const std::string& format, const std::time_t& time) {
char buffer[80];
std::tm* timeinfo = std::localtime(&time);
std::strftime(buffer, sizeof(buffer), format.c_str(), timeinfo);
return buffer;
}
};

2. 使用示例

1
2
3
4
5
6
7
8
9
10
int main() {
std::time_t currentTime = std::time(0);
std::string format = "%Y-%m-%d %H:%M:%S";

std::string formattedTime = DateTimeUtil::format(format, currentTime);

std::cout << "Current time: " << formattedTime << std::endl;

return 0;
}

3. 实现一个通用的日期时间解析函数

1
2
3
4
5
6
7
8
9
class DateTimeUtil {
public:
static std::time_t parse(const std::string& datetime, const std::string& format) {
std::tm timeinfo = {};
std::istringstream stream(datetime);
stream >> std::get_time(&timeinfo, format.c_str());
return std::mktime(&timeinfo);
}
};

4. 使用示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
int main() {
std::string datetime = "2023-09-16 15:30:00";
std::string format = "%Y-%m-%d %H:%M:%S";

std::time_t parsedTime = DateTimeUtil::parse(datetime, format);

if (parsedTime != -1) {
std::string formattedTime = DateTimeUtil::format(format, parsedTime);
std::cout << "Parsed time: " << formattedTime << std::endl;
} else {
std::cout << "Failed to parse datetime." << std::endl;
}

return 0;
}

结论:

通用工具类可以帮助我们简化许多常见的任务,例如日期时间处理。在C++中,我们可以编写这样的工具类来提高代码的可重用性和可维护性。


C++通用工具类:日期时间处理
https://jinbilianshao.github.io/2023/09/18/C-通用工具类:日期时间处理/
作者
连思鑫
发布于
2023年9月18日
许可协议