Now that we understand your actual issue (entering dates via the keypad-only), it's a little easier to understand what you're aiming for. That said...
> That’s almost a solution (and a very neat one), but it still means an additional column per time data entry.
You almost have no option here but to use an additional column. One to enter the data in your preferred format (via keys that are available on the keypad), and an additional column to parse that into an actual date/time value.
Extrapolating on BadUnit's idea, here's one that should work if you enter Hours.minutes (using decimal point as the delimiter):
=TIME(QUOTIENT(B2,1),MOD(B2,1)×100,0)
Or, you can enter the time as just digits (e.g. 1230) and have the calculation do something like:
=TIME(QUOTIENT(B2,100),MOD(B2,100),0)
Both will return a date/time object for 12:30 PM
If you want to get creative/flexible, combine the two functions into an IF() statement:
=IF(B4>100,TIME(QUOTIENT(B4,100),MOD(B4,100),0),TIME(QUOTIENT(B4,1),MOD(B4,1)×100,0))
It picks which formula to use based on whether the value in B4 is greater than 100 (e.g. '1230', 415', etc.) or not.