function UI5Date(vDateParts, sTimezoneID) {
		var oDateInstance = UI5Date._createDateInstance(vDateParts);
		// mark internal properties not enumerable -> deepEqual handles this as a Date instance
		Object.defineProperties(this, {
			sTimezoneID: {value: sTimezoneID},
			oDate: {value: oDateInstance, writable: true},
			oDateParts: {value: undefined, writable: true}
		});

		if (isNaN(oDateInstance)) {
			return;
		}

		if (vDateParts.length > 1
				|| vDateParts.length === 1 && typeof vDateParts[0] === "string"
					&& !rIsUTCString.test(vDateParts[0])) {
			// JavaScript Date parsed the arguments already in local browser time zone
			const aLocalDateParts = [oDateInstance.getFullYear(), oDateInstance.getMonth(), oDateInstance.getDate(),
				oDateInstance.getHours(), oDateInstance.getMinutes(), oDateInstance.getSeconds(),
				oDateInstance.getMilliseconds()];
			// If the given local timestamp does not exist in the current browser time zone (switch to Daylight Saving
			// Time) the values in aLocalDateParts don't match the input and have to be corrected
			const iLocalTimezoneOffset = oDateInstance.getTimezoneOffset();
			// the maximum time shift is 2 hours, so check whether 2 hours ago is in another time zone
			const iTimezoneOffset2hAgo = new Date(oDateInstance.getTime() - 7200000).getTimezoneOffset();
			// only the switch to the Daylight Saving Time needs to be fixed (e.g. from GMT+1 with the offset -60 to
			// GMT+2 with the offset -120, or from GMT-5 with the offset 300 to GMT-4 with the offset 240);
			// in the other case aLocalDateParts contain already the expected date/time parts
			if (iLocalTimezoneOffset < iTimezoneOffset2hAgo) {
				// year, seconds and milliseconds don't change when switching to Daylight Saving Time; update the other
				// parts
				if (vDateParts.length > 1) {
					// timestamp near switch to Daylight Saving Time -> take the original values for month, day, hours,
					// minutes (other parts are not modified by Daylight Saving Time switch)
					aLocalDateParts[1] = vDateParts[1] || 0;
					aLocalDateParts[2] = vDateParts[2] !== undefined ? vDateParts[2] : 1;
					aLocalDateParts[3] = vDateParts[3] !== undefined ? vDateParts[3] : 0;
					aLocalDateParts[4] = vDateParts[4] !== undefined ? vDateParts[4] : 0;
				} else { // vDateParts.length === 1
					// string based local input near the switch to Daylight Saving Time can only be handled in the ISO
					// format
					const aDateParts = rLocalDate.exec(vDateParts[0]);
					if (aDateParts) {
						aLocalDateParts[1] = +aDateParts[2] - 1; // use + operator to get the value as used by Date
						aLocalDateParts[2] = aDateParts[3];
						aLocalDateParts[3] = aDateParts[4] !== undefined ? aDateParts[4] : 0;
						aLocalDateParts[4] = aDateParts[5] !== undefined ? aDateParts[5] : 0;
					} else {
						// other string based local input near the switch to Daylight Saving Time cannot be handled
						// without re-implementing parse logic of JavaScript Date -> recommend to use the constructor
						// with more than 1 argument or to use the ISO format
						Log.warning("UI5Date for '" + vDateParts[0] + "' cannot be ensured to be correct as it is near"
							+ " the change from standard time to daylight saving time in the current browser locale;"
							+ " use the constructor with more than 1 arguments or use the ISO format instead",
							oDateInstance, "sap.ui.core.date.UI5Date");
					}

				}
			}
			this._setParts(aAllParts, aLocalDateParts);
		}
	}
DO NOT call the constructor for UI5Date directly; use <code>UI5Date.getInstance</code>.

@param {object} vDateParts
  An array like object containing the arguments as passed to
  <code>UI5Date.getInstance</code>
@param {string} sTimezoneID
  The time zone ID to use for local methods of <code>Date</code>

@alias module:sap/ui/core/date/UI5Date
@author SAP SE
@extends Date
@class A date implementation considering the configured time zone

  A subclass of JavaScript <code>Date</code> that considers the configured time zone, see
  {@link module:sap/base/i18n/Localization.getTimezone Localization.getTimezone}. All JavaScript
  <code>Date</code> functions that use the local browser time zone, like <code>getDate</code>,
  <code>setDate</code>, and <code>toString</code>, are overwritten and use the
  configured time zone to compute the values.

  Use {@link module:sap/ui/core/date/UI5Date.getInstance} to create new date instances.

  <b>Note:</b> Adjusting the time zone in a running application can lead to unexpected data
  inconsistencies. For more information, see
  {@link module:sap/base/i18n/Localization.setTimezone Localization.setTimezone}.

@hideconstructor
@public
@since 1.111.0
@version ${version}