Я использую этот простой и понятный материал, полученный с сайта www.mkyong.com
[01]?[0-9]|2[0-3]):[0-5][0-9]
( #start of group #1
[01]?[0-9] # start with 0-9,1-9,00-09,10-19
| # or
2[0-3] # start with 20-23
) #end of group #1
: # follow by a semi colon (:)
[0-5][0-9] # follow by 0..5 and 0..9, which means 00 to 59