The PCL exposes the TimeZoneInfo
structure, but fails to include the function you need which means that you'll probably have to write the time zone conversion code yourself. This shouldn't be too bad if you'll always be converting just one time zone to another, but if your source time zones are spread across the world than that will be challenging.
At first I was going to recommend Jon Skeet's, et. al., Noda Time, but they list a significant limitation and the same limitation you've discovered:
The .NET API provided for portable class libraries is more limited
than the full desktop version. Currently this provides relatively few
challenges for Noda Time, with one significant exception:
TimeZoneInfo. While we are able to detect the local time zone's TZDB
equivalent through TimeZoneInfo.StandardName instead of its ID (as we
would do normally), we can't fetch arbitrary time zones by ID, nor can
we ask for the adjustment rules for a particular time zone.
If Noda Time can't do, then I think that you are left with calculating it manually.