System.TimeZoneInfo.ConvertTime C# (CSharp) Method

ConvertTime() public static method

public static ConvertTime ( System.DateTime dateTime, TimeZoneInfo sourceTimeZone, TimeZoneInfo destinationTimeZone ) : System.DateTime
dateTime System.DateTime
sourceTimeZone TimeZoneInfo
destinationTimeZone TimeZoneInfo
return System.DateTime
		public static DateTime ConvertTime (DateTime dateTime, TimeZoneInfo sourceTimeZone, TimeZoneInfo destinationTimeZone)
		{
			if (sourceTimeZone == null)
				throw new ArgumentNullException ("sourceTimeZone");

			if (destinationTimeZone == null)
				throw new ArgumentNullException ("destinationTimeZone");
			
			if (dateTime.Kind == DateTimeKind.Local && sourceTimeZone != TimeZoneInfo.Local)
				throw new ArgumentException ("Kind property of dateTime is Local but the sourceTimeZone does not equal TimeZoneInfo.Local");

			if (dateTime.Kind == DateTimeKind.Utc && sourceTimeZone != TimeZoneInfo.Utc)
				throw new ArgumentException ("Kind property of dateTime is Utc but the sourceTimeZone does not equal TimeZoneInfo.Utc");
			
			if (sourceTimeZone.IsInvalidTime (dateTime))
				throw new ArgumentException ("dateTime parameter is an invalid time");

			if (dateTime.Kind == DateTimeKind.Local && sourceTimeZone == TimeZoneInfo.Local && destinationTimeZone == TimeZoneInfo.Local)
				return dateTime;

			DateTime utc = ConvertTimeToUtc (dateTime, sourceTimeZone);

			if (destinationTimeZone != TimeZoneInfo.Utc) {
				utc = ConvertTimeFromUtc (utc, destinationTimeZone);
				if (dateTime.Kind == DateTimeKind.Unspecified)
					return DateTime.SpecifyKind (utc, DateTimeKind.Unspecified);
			}
			
			return utc;
		}

Same methods

TimeZoneInfo::ConvertTime ( System.DateTime dateTime, TimeZoneInfo destinationTimeZone ) : System.DateTime
TimeZoneInfo::ConvertTime ( DateTimeOffset dateTimeOffset, TimeZoneInfo destinationTimeZone ) : DateTimeOffset

Usage Example

 public static DateTimeOffset ToTimeZone(this DateTimeOffset date, TimeZoneInfo destinationTimeZone) => TimeZoneInfo.ConvertTime(date, destinationTimeZone);
All Usage Examples Of System.TimeZoneInfo::ConvertTime