--- parse-time.el 2015-08-11 18:06:46.895638495 +0900 +++ parse-time_1.el 2015-08-11 19:19:20.855001776 +0900 @@ -182,7 +182,10 @@ The values are identical to those of `decode-time', but any values that are unknown are returned as nil." (let ((time (list nil nil nil nil nil nil nil nil nil)) - (temp (parse-time-tokenize (downcase string)))) + (temp (parse-time-tokenize (downcase string))) + (has-pm nil)) + (when (member "pm" temp) + (setq has-pm t)) (while temp (let ((parse-time-elt (pop temp)) (rules parse-time-rules) @@ -216,6 +219,8 @@ (funcall this))) parse-time-val))) (rplaca (nthcdr (pop slots) time) new-val)))))))) + (when (and has-pm (< (nth 2 time) 12)) + (setf (nth 2 time) (+ (nth 2 time) 12))) time)) (provide 'parse-time)