在 c 中将字符串转换为 time_t
Convert string to time_t in c
您好,我需要将包含字符串的变量 time
转换为 time_t 类型,格式如下:
time_t t = time(NULL);
struct tm *tm = localtime(&t);
char time[100];
strftime(time, 100, "%b %d %H:%M", tm);
我不想对上面的代码进行任何修改并保留我选择的格式。谢谢!
如果非标准C函数strptime()允许:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
// Return -1 on error
time_t DR_string_to_time(const char *s) {
// Get current year
time_t t = time(NULL);
if (t == -1) {
return -1;
}
struct tm *now = localtime(&t);
if (now == NULL) {
return -1;
}
// Assume current year
struct tm DR_time = {.tm_year = now->tm_year, .tm_isdst = -1};
if (strptime(s, "%b %d %H:%M", &DR_time) == NULL) {
return -1;
}
t = mktime(&DR_time);
return t;
}
注意:"%b %d %H:%M"
(月、日、时、分)不包含年,所以代码需要一些年份来组成time_t
.
您好,我需要将包含字符串的变量 time
转换为 time_t 类型,格式如下:
time_t t = time(NULL);
struct tm *tm = localtime(&t);
char time[100];
strftime(time, 100, "%b %d %H:%M", tm);
我不想对上面的代码进行任何修改并保留我选择的格式。谢谢!
如果非标准C函数strptime()允许:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
// Return -1 on error
time_t DR_string_to_time(const char *s) {
// Get current year
time_t t = time(NULL);
if (t == -1) {
return -1;
}
struct tm *now = localtime(&t);
if (now == NULL) {
return -1;
}
// Assume current year
struct tm DR_time = {.tm_year = now->tm_year, .tm_isdst = -1};
if (strptime(s, "%b %d %H:%M", &DR_time) == NULL) {
return -1;
}
t = mktime(&DR_time);
return t;
}
注意:"%b %d %H:%M"
(月、日、时、分)不包含年,所以代码需要一些年份来组成time_t
.