我正在尝试使用strptime将字符串“2011-12-12”转换为时间值。有人可以解释为什么这不起作用?
根据文件:
格式由零个或多个指令组成。每个指令由以下之一组成:一个或多个空格字符(由isspace()指定);普通人物(既不是'%'也不是白空间);或转换规范。
if( strptime(date, "%y-%m-%d", &tm) != NULL)
答案 0 :(得分:4)
看看the documentation。 %y
说明符是两位数年份,没有世纪,而%Y
是全年,包括世纪。当您对输入字符串使用%y
时,它将年份解析为20
,然后由于字符串的其余部分(11-12-12
)与-%m-%d
不匹配,因此解析失败。
更改格式字符串以使用%Y
(推荐),或将输入更改为使用两位数日期(强烈不推荐)。