我正在执行以下操作来转换和检查日期,但是,我不确定为什么以下日期一直验证为真。
不会%d
只检查[01,31] + leading zeros
吗?有没有更好更准确的方法来做到这一点?
#include <time.h>
#include <stdio.h>
#include <stdlib.h>
int main () {
struct tm tm;
char buffer [80];
char *str = "29/Jan/2012";
if (strptime (str, "%Y/%b/%d", &tm) == NULL)
exit(EXIT_FAILURE);
if (strftime (buffer,80,"%Y-%m-%d",&tm) == 0)
exit(EXIT_FAILURE);
printf("%s\n", buffer); // prints 29-01-20
return 0;
}