DateTime オブジェクトには「Kind」変数があり、TimeZoneInfo がその処理方法を知るのに役立ちます。TimeZone.ConvertTimeのMSDN ドキュメントには、次のように記載されています。
  DateTimeKind.Local、現地時間を destinationTimeZone の時間に変換します。
  
  DateTimeKind.Utc、協定世界時 (UTC) を destinationTimeZone の時刻に変換します。
  
  DateTimeKind.Unspecified、ローカルと見なされます。
例えば:
  Console.WriteLine("Local time zone is '{0}'.", TimeZoneInfo.Local.Id);
  var gmTime          = new DateTime(2013, 03, 02, 01, 00, 00, DateTimeKind.Utc);
  var localTime       = new DateTime(2013, 03, 02, 01, 00, 00, DateTimeKind.Local);
  var unspecifiedTime = new DateTime(2013, 03, 02, 01, 00, 00);
  var timeZone = TimeZoneInfo.FindSystemTimeZoneById("Eastern Standard Time");
  var gmTimeConverted           = TimeZoneInfo.ConvertTime(gmTime,          timeZone); // 03/02/2013 8:00:00AM
  var localTimeConverted        = TimeZoneInfo.ConvertTime(localTime,       timeZone); // 03/02/2013 
  var unspecifiedTimeConverted  = TimeZoneInfo.ConvertTime(unspecifiedTime, timeZone);
  Console.WriteLine("Converting GMT         to EST: {0}", gmTimeConverted);
  Console.WriteLine("Converting Local       to EST: {0}", localTimeConverted);
  Console.WriteLine("Converting Unspecified to EST: {0}", unspecifiedTimeConverted);
結果:
ローカル タイム ゾーンは「太平洋標準時」です。
GMT から EST への変換: 3/1/2013 8:00:00 PM
ローカルから EST への変換: 2013 年 3 月 2 日 4:00:00 AM
Unspecified から EST への変換: 2013 年 3 月 2 日 4:00:00 AM
または、ローカル タイムゾーンが「東部標準時」の場合は、次の結果が得られます
ローカル タイム ゾーンは「東部標準時」です。
GMT から EST への変換: 3/1/2013 8:00:00 PM
ローカルから EST への変換: 2013 年 3 月 2 日 1:00:00 AM
Unspecified から EST への変換: 2013 年 3 月 2 日 1:00:00 AM
TimeZoneInfo で「Unspecified」を Utc のように扱いたい場合は、TimeZoneInfo.ConvertTimeFromUtc のように機能する必要があります。再びMSDNのドキュメントから
  DateTimeKind.Local、ArgumentException をスローします。
  
  DateTimeKind.Unspecified または DateTimeKind.Utc、協定世界時 (UTC) から変換します。