Смещение в DateTimeOffset в C#
У DateTimeOffset смещение - это TimeSpan, а не строка "+03:00".
Текущее смещение зависит от пояса и от того, действует ли в этот день летнее время.
Возьмём текущую отметку и выведем смещение в часах. Число зависит от пояса машины и от летнего времени:
DateTimeOffset now = DateTimeOffset.Now;
TimeSpan shift = now.Offset;
Console.WriteLine(shift.TotalHours);
Для отметки в UTC выведите смещение в минутах.