text: public virtual string FormatDate(PersonIdent ident){TimeZoneInfo tz;switch (format){case GitDateFormatter.Format.RAW:{int offset = ident.GetTimeZoneOffset();string sign = offset < 0 ? "-" : "+";int offset2;if (offset < 0){offset2 = -offset;}else{offset2 = offset;}int hours = offset2 / 60;int minutes = offset2 % 60;return string.Format("%d %s%02d%02d", ident.GetWhen().GetTime() / 1000, sign, hours, minutes);}case GitDateFormatter.Format.RELATIVE:{return RelativeDateFormatter.Format(ident.GetWhen());}case GitDateFormatter.Format.LOCALELOCAL:case GitDateFormatter.Format.LOCAL:{dateTimeInstance.SetTimeZone(SystemReader.GetInstance().GetTimeZone());return dateTimeInstance.Format(ident.GetWhen());}case GitDateFormatter.Format.LOCALE:{tz = ident.GetTimeZone();if (tz == null){tz = SystemReader.GetInstance().GetTimeZone();}dateTimeInstance.SetTimeZone(tz);dateTimeInstance2.SetTimeZone(tz);return dateTimeInstance.Format(ident.GetWhen()) + " " + dateTimeInstance2.Format(ident.GetWhen());}default:{tz = ident.GetTimeZone();if (tz == null){tz = SystemReader.GetInstance().GetTimeZone();}dateTimeInstance.SetTimeZone(ident.GetTimeZone());return dateTimeInstance.Format(ident.GetWhen());break;}}}