According to Wikipedia (and confirmed in an answer by Dario Solera), in Italy they format times using colons:
The 24-hour notation is used in writing
This seems to be a .NET 3.5 issue. In .NET 4.0 the code you posted uses a colon as expected. Seems like a strange breaking change between the framework versions, but seems like upgrading to .NET 4 will solve the problem.