There is usually a difference between reading a written or printed time out loud, and talking about time conversationally in a natural way. In fact this applies to other kinds of material with numerical digits which are not strictly numbers in the mathematical sense such as telephone "numbers" (the quotes are deliberate), bus routes, etc.
To say "twelve zero one AM" would be very precise and more suitable for a work situation whereas you might say "twelve oh one" to a friend. I would be more likely to say "one minute past midnight" to a friend.
In fact to avoid confusion, British transport operators, who use the 24 hour clock (that Americans call "military time") often represent midnight as "00:00" and would print that time as "00:01".
When I lived in London I used bus route 108 to visit my aunt in Catford and it was called route "one oh eight" by everybody. Also the 227 to Bromley was the "two two seven". The 68 was the "sixty eight" however. I think it changed at 100. I am talking about conversation here. Of course either way would be understood.
At school I was taught to say 3.005 as "three point zero zero zero five" but you hear people using "oh" instead of zero.
I have heard of Americans coming to Britain and not at first understanding telephone numbers quoted with "oh" for 0 digits. After 6 months they fall into line and start confusing their relatives back home.
In the early days of UK dial telephones, numbers in big cities had letters and numbers e.g. ABBey 1234 was on the Abbey exchange in London (dialled locally as ABB 1234) and on the phone dials the numbers and letters were arranged 1, 2 ABC, 3 DEF, 4 GHI, 5 JKL, 6 MN, 7 PRS, 8 TUV, 9 WXY, 0 O and the last digit was used on its own to call the operator, so because it is round it was naturally seen as the letter O (which is the first letter of "operator".