What region is he in?
If in the flow I posted you replace the line in the function node
msg.payload = new Date().toLocaleTimeString()
with
msg.payload = new Date().toLocaleTimeString("en-UK")
what do you see.
As far as I can see, toLocaleTimeString defaults to the system locale, which I guess is 'en-US' so it shows AM/PM. If I use (in the UK) "en-US" in the call then I see AM/PM. If I am right then that is the problem. On a server with en-US as the region then it will show AM/PM and there is not much you can do about it, other than change the region in the server to en-UK