For a 12hour time format one can use:
^(?:0?[0-9]|1[0-2])[-:][0-5][0-9]\s*[ap]m$
Where
(?:0?[0-9]|1[0-2]) is the hour[-:] is the separator, which can be adjusted to fit your need[0-5][0-9] is the minute\s*[ap]m followed any number of whitespace characters, and am or pmIf you need the seconds:
^(?:0?[0-9]|1[0-2])[-:][0-5][0-9][-:][0-5][0-9]\s*[ap]m$
For a 24hr time format:
^(?:[01][0-9]|2[0-3])[-:h][0-5][0-9]$
Where:
(?:[01][0-9]|2[0-3]) is the hour[-:h] the separator, which can be adjusted to fit your need[0-5][0-9] is the minuteWith the seconds:
^(?:[01][0-9]|2[0-3])[-:h][0-5][0-9][-:m][0-5][0-9]$
Where [-:m] is a second separator, replacing the h for hours with an m for minutes, and [0-5][0-9] is the second.