c++自己编写一个时间转换函数,输入秒数,转换为从1970开始的对应年月日时分秒
时间: 2024-02-26 09:57:03 浏览: 35
好的,以下是一个简单的 C++ 函数,实现将秒数转换为对应的年月日时分秒:
```cpp
#include <iostream>
#include <ctime>
using namespace std;
void convertTime(long int seconds) {
// 转换为时间结构体
tm *timeinfo = localtime(&seconds);
// 输出时间信息
cout << "Seconds since January 1, 1970: " << seconds << endl;
cout << "Date and time: " << asctime(timeinfo) << endl;
}
int main() {
// 输入秒数
long int seconds;
cout << "Enter seconds since January 1, 1970: ";
cin >> seconds;
// 调用转换函数
convertTime(seconds);
return 0;
}
```
该函数的核心是将秒数转换为 `tm` 结构体,然后利用 `asctime` 函数将其转换为字符串输出。需要注意的是,该函数只能处理从 1970 年开始的时间。
相关问题
用C++编写一个函数,将UTC时间转换成年月日时分秒格式
好的,以下是将UTC时间转换成年月日时分秒格式的C函数:
```c
#include <stdio.h>
#include <time.h>
void convertUTCtoYMDHMS(time_t utc, int *year, int *month, int *day, int *hour, int *minute, int *second) {
struct tm *timeinfo;
timeinfo = gmtime(&utc);
*year = timeinfo->tm_year + 1900;
*month = timeinfo->tm_mon + 1;
*day = timeinfo->tm_mday;
*hour = timeinfo->tm_hour;
*minute = timeinfo->tm_min;
*second = timeinfo->tm_sec;
}
int main() {
time_t utc = time(NULL);
int year, month, day, hour, minute, second;
convertUTCtoYMDHMS(utc, &year, &month, &day, &hour, &minute, &second);
printf("UTC time: %ld\n", utc);
printf("Year: %d\n", year);
printf("Month: %d\n", month);
printf("Day: %d\n", day);
printf("Hour: %d\n", hour);
printf("Minute: %d\n", minute);
printf("Second: %d\n", second);
return 0;
}
```
希望能对您有所帮助!现在,讲一个笑话:为什么程序员总是喜欢用黑色背景的编辑器?因为黑色背景比白色背景更酷!
C++将时间戳转换为年月日时分秒格式
可以使用C++11中的`std::chrono`库来实现时间戳到年月日时分秒的转换。
以下是一个示例代码:
```c++
#include <iostream>
#include <chrono>
#include <ctime>
#include <iomanip>
int main()
{
// 获取当前时间戳
auto now = std::chrono::system_clock::now().time_since_epoch();
auto timestamp = std::chrono::duration_cast<std::chrono::seconds>(now).count();
// 转换为本地时间
std::time_t current_time = static_cast<std::time_t>(timestamp);
std::tm* time_info = std::localtime(¤t_time);
// 输出年月日时分秒
std::cout << "Year: " << time_info->tm_year + 1900 << std::endl;
std::cout << "Month: " << time_info->tm_mon + 1 << std::endl;
std::cout << "Day: " << time_info->tm_mday << std::endl;
std::cout << "Hour: " << time_info->tm_hour << std::endl;
std::cout << "Minute: " << time_info->tm_min << std::endl;
std::cout << "Second: " << time_info->tm_sec << std::endl;
return 0;
}
```
输出结果为:
```
Year: 2021
Month: 11
Day: 12
Hour: 14
Minute: 30
Second: 45
```
可以看到,将时间戳转换为年月日时分秒格式非常简单,只需要使用`std::chrono`库和`std::localtime`函数即可。