/// <summary> /// Converts the universal date time string to local date time. /// </summary> /// <param name="value">The value.</param> /// <returns>DateTime</returns> internal DateTime?ConvertUniversalDateTimeStringToLocalDateTime(string value) { if (string.IsNullOrEmpty(value)) { return(null); } else { // Assume an unbiased date/time is in UTC. Convert to UTC otherwise. DateTime dateTime = DateTime.Parse( value, CultureInfo.InvariantCulture, DateTimeStyles.AdjustToUniversal | DateTimeStyles.AssumeUniversal); if (this.TimeZone == TimeZoneInfo.Utc) { // This returns a DateTime with Kind.Utc return(dateTime); } else { DateTime localTime = EwsUtilities.ConvertTime( dateTime, TimeZoneInfo.Utc, this.TimeZone); if (EwsUtilities.IsLocalTimeZone(this.TimeZone)) { // This returns a DateTime with Kind.Local return(new DateTime(localTime.Ticks, DateTimeKind.Local)); } else { // This returns a DateTime with Kind.Unspecified return(localTime); } } } }