strptime
的规范:
http://pubs.opengroup.org/onlinepubs/9699919799/functions/strptime.html
主要是关于可能的转换规范以及它们需要什么输入。但是,似乎没有关于此函数如何将结果存储在struct tm
中的规范。如果多个说明符读取部分或完全冲突的数据,应该会发生什么。一个简单的例子是%m
和%b
(或甚至是重复%m
)的存在,阅读冲突的月份,但也许更有趣的例子是%d
(每月的某一天)和%a
(星期几)冲突。哪个优先? strptime
是否应该确保struct tm
中的输出一致,或者只是将字段存储为读取?某些事情如%W
(一年中的某一周)在struct tm
中没有直接表示,所以我认为它们必须导致基于其他字段生成派生输出,但不清楚何时适用。< / p>
我意识到由于规范似乎缺乏,我可能会要求一个根本不存在的答案,但可以表征一个有用答案的事情将是:
答案 0 :(得分:2)
其他字段可用于验证日期。验证和验证,您可以将字符串转换为重新发送日期的一系列数字,然后您必须验证所有这些数字是否指向一个正确的日期,例如星期几是正确的,如果日期无效,则strptime
会返回NULL
。