It depends on the level of robustness that you need.
You'll probably need some kind of hack either way. An easy way would be to split the string by spaces and then concatenate the first letter of each word. i.e.
string[] words = tzname.Split(" ".ToCharArray());
string tzabbr = "";
foreach (string word in words)
tzabbr += word[0];
That won't work for every time zone on the planet, but it will work for most of them. If you need it more robust then you'll probably need to create a map that maps time zone names to their abbreviations.