Я не верю, что есть какая-либо пользовательская строка формата даты и времени , которая будет анализировать или форматировать сокращение часового пояса.Вам придется удалить его, проанализировать локальную часть, определить, какой часовой пояс подразумевается под аббревиатурой (удачи - они неоднозначные), а затем применить этот часовой пояс к местному времени, чтобы получить значение UTC.(опять же, это может быть неоднозначно).
Если вы вообще управляете форматом, я постараюсь избегать включения информации о часовом поясе, если это возможно, или включения смещения а не часовой пояс, если это все, что важно (смещение не дает той же информации, конечно), или однозначный идентификатор часового пояса, если вам действительно нужен часовой пояс.Обратите внимание, что .NET использует идентификаторы часовых поясов системы Windows;мой собственный проект Noda Time использует более распространенные идентификаторы Olson / zoneinfo / tz , если это вам полезно.