It reminds me of a similar problem I face in Dutch (and still trip up if I'm not conscious): In Dutch (my 4th language), "half nine" ("half negen") means 8:30 . Whereas in English[1] "half nine" means 9:30 . So there were times when I missed appointments by an hour! After 7 years of being immersed in the language, I still have to deliberately engage my brain whenever someone says "half nine" (or whatever the hour) in…
What "half negen" means is easier to remember when you contrast "half" to "vol"/"heel" -> half nine is not full nine yet.
To be clear, nobody uses "vol negen" or "heel negen", it's just "negen (uur)".