public static ExDateTime?ToEcpExDateTime(this string dateTimeString, string parseFormat) { if (dateTimeString.IsNullOrBlank()) { return(null); } ExDateTime?result; try { if (EacRbacPrincipal.Instance.UserTimeZone != null) { result = new ExDateTime?(ExDateTime.ParseExact(EacRbacPrincipal.Instance.UserTimeZone, dateTimeString, parseFormat, CultureInfo.InvariantCulture)); } else { int browserTimeZoneOffsetMinutes = EcpDateTimeHelper.GetBrowserTimeZoneOffsetMinutes(); result = new ExDateTime?(ExDateTime.ParseExact(ExTimeZone.UtcTimeZone, dateTimeString, parseFormat, CultureInfo.InvariantCulture).AddMinutes((double)browserTimeZoneOffsetMinutes)); } } catch (FormatException ex) { ExTraceGlobals.EventLogTracer.TraceError <string, string>(0, 0L, "Fail to parse the date time string: {0}. Got the exception of '{1}'.", dateTimeString, ex.Message); result = null; } return(result); }
public static ExDateTime ToUserExDateTime(this ExDateTime dateTimeValue) { if (EacRbacPrincipal.Instance.UserTimeZone != null) { return(EacRbacPrincipal.Instance.UserTimeZone.ConvertDateTime(dateTimeValue)); } int browserTimeZoneOffsetMinutes = EcpDateTimeHelper.GetBrowserTimeZoneOffsetMinutes(); return(dateTimeValue.ToUtc().AddMinutes((double)(-(double)browserTimeZoneOffsetMinutes))); }