String.Format нужен объект для применения формата.Документация говорит нам, что метод:
Заменяет один или несколько элементов формата в строке строковым представлением указанного объекта.
Строковое представление string
само по себе string
.Таким образом, ваша строка формата не влияет на строку, которую вы ей передаете.Но он может отформатировать Datetime
объект, поскольку используемый вами формат имеет допустимое совпадение строкового представления.
Поэтому просто удалите вызов ToString, и ваш подход будет работать.
System.String strResult = System.String.Format("{0:hh:mm tt}", pDS.Tables[0].Rows[0]["StartTime"]);
txtStartTime.Text = strResult;