linux C 时间戳转换 格式化
时间: 2024-09-11 15:16:39 浏览: 59
Linux系统中C语言处理时间戳和格式化的常见方式主要是通过`time.h`头文件中提供的函数。下面是几个常用的操作:
1. 获取当前时间的时间戳(秒级):
使用`time()`函数可以获得从Epoch(1970年1月1日 00:00:00 UTC)开始计算的当前时间的秒数,返回一个`time_t`类型的值。
```c
#include <time.h>
#include <stdio.h>
int main() {
time_t current_time = time(NULL);
printf("当前时间的时间戳是:%ld\n", current_time);
return 0;
}
```
2. 将时间戳转换为可读的字符串格式:
使用`ctime()`函数可以将时间戳转换为本地时间的字符串表示,包括日期和时间。
```c
#include <time.h>
#include <stdio.h>
int main() {
time_t current_time = time(NULL);
printf("当前时间的可读格式是:%s", ctime(¤t_time));
return 0;
}
```
3. 格式化时间输出:
使用`strftime()`函数可以将`struct tm`类型的对象转换成特定格式的时间字符串。首先需要使用`localtime()`或`gmtime()`函数将时间戳转换为`struct tm`结构体,然后进行格式化。
```c
#include <time.h>
#include <stdio.h>
int main() {
time_t current_time = time(NULL);
struct tm *time_info = localtime(¤t_time);
char buffer[80];
strftime(buffer, sizeof(buffer), "%Y-%m-%d %H:%M:%S", time_info);
printf("当前时间的格式化输出是:%s\n", buffer);
return 0;
}
```
4. 字符串解析为时间:
使用`strptime()`函数可以从字符串中解析出时间,并填充到`struct tm`结构体中。
```c
#include <time.h>
#include <stdio.h>
int main() {
struct tm time_info = {0};
char time_str[] = "2023-03-14 12:34:56";
strptime(time_str, "%Y-%m-%d %H:%M:%S", &time_info);
// 可以继续使用strftime等函数进行格式化输出或其他操作
char buffer[80];
strftime(buffer, sizeof(buffer), "%c", &time_info);
printf("解析的时间格式化输出是:%s\n", buffer);
return 0;
}
```
阅读全文