in my test, they are same:
```csharp
TimeZone.GetUtcOffset(fireTime.Value) //not implemented in Mono
TimeZone.GetUtcOffset(fireTime.Value.DateTime)//Not rigorous
TimeZone.GetUtcOffset(fireTime.Value.LocalDateTime)//right
TimeZone.GetUtcOffset(fireTime.Value.UtcDateTime)//right, better
```
because GetUtcOffset(DateTimeOffset) call GetUtcOffsetFromUtc(DateTime), in the source( http://referencesource.microsoft.com/#mscorlib/system/timezoneinfo.cs ),we can find this code:
```csharp
        public TimeSpan GetUtcOffset(DateTimeOffset dateTimeOffset) {
            return GetUtcOffsetFromUtc(dateTimeOffset.UtcDateTime, this);
        }
```
so fireTime.Value.UtcDateTime is better.

TimeZoneUtil, I'm sure ConvertTime call GetUtcOffsetFromUtc, weather in Mono or not, ConvertTimeFromUtc are all right.