__pmParseCtime reverses the asctime(3) function. It accepts a string specifying a time, and fills in the
given tm structure.
string is either a fully specified date and time in the format DayMMMDDHH:MM:SSYYYY (e.g "Mon Mar 4
13:07:47 1996") or a partially specified date and time like "1996", "Mar 1996", "Mar 4 1996", "Mar",
"13:07:47", "13:07", "Mar 4 13:07:47",.... For a partially specified date and time, the order of the
fields must be preserved and missing fields are filled in from the current date and time.
The seconds component (SS) may be a floating point number, for example the time "13:07:47.5". The 12
hour clock is also supported, so "13:07" and "1:07 pm" are equivalent.
__pmParseCtime returns 0 if successful. It returns -1 and a dynamically allocated error message string
in errmsg, if the given string does not parse. Be sure to free(3) the error message string.
The tm structure returned in rslt should only be used as an argument to the __pmConvertTime function, as
it contains encoded information that will only be correctly interpreted by __pmConvertTime.