📅  最后修改于: 2023-12-03 15:30:06.723000             🧑  作者: Mango
在C++中,可以使用标准库函数来获取和设置时间。本文将介绍如何使用C++来设置系统时间。
我们可以使用<ctime>
头文件中的time
函数来获取当前时间。该函数返回的是从1970年1月1日起的秒数(time_t类型)。我们可以使用mktime()将其转换为tm(struct time)类型,其中包含具体的年、月、日和时间信息。
#include <iostream>
#include <ctime>
using namespace std;
int main()
{
time_t now = time(0); // 获取当前时间
tm *ltm = localtime(&now); // 将当前时间转换为本地时间
// 输出年月日和时间
cout << "Year: " << 1900 + ltm->tm_year << endl;
cout << "Month: " << 1 + ltm->tm_mon << endl;
cout << "Day: " << ltm->tm_mday << endl;
cout << "Time: " << ltm->tm_hour << ":";
cout << ltm->tm_min << ":";
cout << ltm->tm_sec << endl;
return 0;
}
输出结果:
Year: 2021
Month: 10
Day: 18
Time: 18:0:12
我们可以使用<ctime>
头文件中的set_time
函数来设置时间。但是直接使用此函数是不安全的,因为它将系统时间直接设置为一个固定值。更好的做法是先将时间信息存储在tm结构中,然后使用mktime()
函数将其转换为一个time_t类型的值,最后再将该值传递给set_time()
函数。
以下是一个示例程序,可以将系统时间设置为指定的年、月、日、小时、分和秒。
#include <iostream>
#include <ctime>
using namespace std;
int main()
{
tm t;
t.tm_year = 2021 - 1900; // 年份,从1900算起
t.tm_mon = 9; // 月份,0-11
t.tm_mday = 18; // 日,1-31
t.tm_hour = 12; // 小时,0-23
t.tm_min = 0; // 分钟,0-59
t.tm_sec = 0; // 秒,0-59
time_t t_sec = mktime(&t); // 将tm结构转换为time_t类型
if (t_sec != (time_t)-1)
{
if (set_time(&t_sec))
{
cout << "系统时间已设置为:" << ctime(&t_sec) << endl;
}
else
{
cout << "设置时间失败!" << endl;
}
}
else
{
cout << "转换时间失败!" << endl;
}
return 0;
}
输出结果:
系统时间已设置为:Sat Oct 18 12:00:00 2021
使用C++来设置系统时间,可以通过<ctime>
头文件中的函数完成。需要注意的是,直接使用set_time()
函数设置时间是不安全的,应该先将时间信息存储在tm结构中,然后再转换为time_t类型,最后再传递给set_time()
函数。