0

我正在尝试使用 strptime 将字符串“2011-12-12”转换为时间值。有人可以解释为什么这不起作用吗?

根据文档:

该格式由零个或多个指令组成。每个指令由以下之一组成: 一个或多个空白字符(由 isspace() 指定);一个普通字符(既不是 '%' 也不是空白字符);或转换规范。

if( strptime(date, "%y-%m-%d", &tm) != NULL)
4

1 回答 1

4

看看文档。说明%y符是两位数的年份,没有世纪,而是%Y全年,包括世纪。当您使用%y输入字符串时,它会将年份解析为20,然后由于字符串的其余部分 ( 11-12-12) 不匹配-%m-%d,因此解析失败。

更改您的格式字符串以使用%Y(推荐),或更改您的输入以使用两位数日期(强烈推荐)。

于 2011-10-18T20:17:26.253 回答