По умолчанию час в строке формата для DateTime преобразует 0 в 12.
Например, если у вас есть
DateTime dt = new DateTime(1999, 1, 1, 0, 0, 0);
string s = dt.ToString("h:mm:ss");
значение s будет «12: 0: 0», а не «0: 0: 0». Есть ли способ получить «0:00:00» вместо этого?