using System.Globalization;
public static void Main()
String timeFromServer = "2019-02-07T06:32:56.457Z";
String timeZoneFromServer = "-03:00";
DateTime dateValue = DateTime.ParseExact(timeFromServer, "yyyy-MM-ddTHH:mm:ss.fffZ", CultureInfo.InvariantCulture);
bool isNegative = timeZoneFromServer.StartsWith("-");
string format = isNegative ? "\\-hh\\:mm" : "\\+hh\\:mm";
TimeSpanStyles tss = isNegative ? TimeSpanStyles.AssumeNegative : TimeSpanStyles.None;
if (TimeSpan.TryParseExact(timeZoneFromServer, format, null, tss, out ts))
Console.WriteLine("{0} successfully parsed to: {1}", timeZoneFromServer, ts);
String stringFromTimeSpan = ts.ToString(@"hh\:mm");
Console.WriteLine("stringFromTimeSpan = " + stringFromTimeSpan);
Console.WriteLine("Could not be parsed: {0}", timeZoneFromServer);
dateValue = DateTime.Now;
dateValue = dateValue + ts;