linux年月日和时间转换函数
时间: 2024-10-11 15:03:15 浏览: 19
在Linux中,如果你需要处理日期和时间的转换,可以使用内置的一些库函数,如`strftime()`和`strptime()`函数。这两个函数分别用于格式化时间和将字符串解析成时间。
1. `strftime()`函数:它接收两个参数,第一个是要格式化的字符串,第二个是包含当前日期和时间的结构体(通常是`time_t`类型的)。例如:
```c
struct tm timeinfo;
time_t raw_time;
time(&raw_time); // 获取当前时间
localtime_s(&timeinfo, &raw_time); // 转换为本地时间格式
char formatted_time[64];
strftime(formatted_time, sizeof(formatted_time), "%Y-%m-%d %H:%M:%S", &timeinfo);
```
这会把当前的时间转换为"YYYY-MM-DD HH:MM:SS"这样的格式。
2. `strptime()`函数:这个函数则是反向操作,从字符串解析出日期和时间。它尝试按照指定的格式解析输入的字符串,并返回一个时间结构体:
```c
char date_string[] = "2023-05-08 13:45:30";
struct tm parsed_time;
int result = strptime(date_string, "%Y-%m-%d %H:%M:%S", &parsed_time);
if (result == -1) {
perror("Invalid date format");
}
```
如果解析成功,`result`会是非零值,否则可能是错误码。
阅读全文