作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想将一个字符串(char*)解析为 C 中的 tm 结构。是否有任何内置函数可以做到这一点?
我指的是 C99 标准中的 ANSI C。
最佳答案
有一个函数叫 strptime()在 UNIX 派生系统中的 time.h 中可用。它的用法与scanf()
类似。
如果您知道日期的格式,则可以使用 scanf()
调用。
即:
char *dateString = "2008-12-10";
struct tm * parsedTime;
int year, month, day;
// ex: 2009-10-29
if(sscanf(dateString, "%d-%d-%d", &year, &month, &day) != EOF){
time_t rawTime;
time(&rawTime);
parsedTime = localtime(&rawTime);
// tm_year is years since 1900
parsedTime->tm_year = year - 1900;
// tm_months is months since january
parsedTime->tm_mon = month - 1;
parsedTime->tm_mday = day;
}
除此之外,我不知道有任何 C99 char *
到 struct tm
函数。
关于c - 如何在 C 中将字符串解析为日期时间结构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41462385/
我是一名优秀的程序员,十分优秀!