Поскольку спецификатор строки формата "tt" выводит только верхний регистр, вам придется изменить это самостоятельно. Кроме того, DateTimes не хранит название часового пояса, только смещение.
DateTime dt = DateTime.Now;
string ampm = dt.ToString("tt").ToLower();
string output = string.Format("{0:MMM. d, yyyy h:mm}{1}", dt, ampm);