0
我正在阅读C程序中的json。我收到一个字符串是这样的:24小时时间格式
Apr 3, 2014 4:44:39 PM
我与strptime
解析它来获取所有的值是这样的:
strptime(observationDate, "%b %d, %Y %H:%M:%S %p", &result);
我%r
代替%p
也试过。在observationDate中,我有包含字符串格式的日期的字符串。结果是一个结构tm。
但是,即使在第一个字符串中获取PM,当我尝试在转换后打印日期时,我得到4而不是16.我打印像这样,debugLog是一个函数,用于在文本之前打印系统日期...
debugLog(DEB_INFO, "observationDateConverted: %d-%d-%d %d:%d:%d\n",
result.tm_year+1900,
result.tm_mon + 1,
result.tm_mday,
result.tm_hour,
result.tm_min,
result.tm_sec);
但我不希望12小时制时间。我想要24,因为在PM上,我想收到16或17例如 – Biribu
'strptime()'分析输入字符串。因为你在输入时得到12h的时间格式,所以使用正确的格式说明符来获得你所得到的内容,即上午12点/下午。那么'struct tm'会被正确设置。 – alk
是的,你是对的。我正在使用错误的参数读取数据。我无法理解它是如何工作的。 – Biribu