By default, the hour in a format string for a DateTime transforms 0 into 12. For example, if you have
DateTime dt = new DateTime(1999, 1, 1, 0, 0, 0);
string s = dt.ToString("h:mm:ss");
the value of s will be "12:0:0", not "0:0:0". Is there a way to get "0:00:00" instead?