在著名的unix系统中,使用了一种简洁高效的时间表示方法,即:
将1970年1月1日0点作为“unix纪元”的原点,从1970年1月1日开始经过的秒数存储为一个32位整数
请编写一个程序,帮助把一个unix时间辍,转换成形如"YYYY-mm-dd HH:ii:ss"的格式,其中的字母分别代表
| YYYY | 4 位数字完整表示的年份 |
| mm | 数字表示的月份,有前导零的 2 位数字 |
| dd | 月份中的第几天,有前导零的2位数字 |
| HH | 小时,24 小时格式,有前导零 |
| ii | 有前导零的分钟数 |
| ss | 秒数,有前导零 |
Input
输入数据有若干行,每行包含一个整数t,(0<=t<2^31)
Output
对每一行输入数据,输出一行,为形如“YYYY-mm-dd HH:ii:ss”格式的时间
Sample Input
10 1234567890
Sample Output
1970-01-01 00:00:10 2009-02-13 23:31:30
#include <ctime>
#include <iostream>
using namespace std;
void convert(time_t seconds) {
tm* ptm;
char buffer[80];
ptm = gmtime(&seconds);
strftime(buffer, 80, "%Y-%m-%d %H:%M:%S", ptm);
cout<<buffer<<endl;
}
int main(int argc, char *argv[])
{
int i = 0;
time_t time;
time_t seconds[80];
while(cin>>time) {
seconds[i] = time;
i++;
}
int j =0;
for (; j < i; ++j)
convert(seconds[j]);
return 0;
}

本文介绍了一个简单的程序,用于将Unix时间戳转换为易读的日期时间格式(YYYY-mm-dd HH:ii:ss)。程序通过使用标准库函数gmtime()和strftime()来实现这一转换。
590

被折叠的 条评论
为什么被折叠?



