@Nullable
	public static Calendar readDateTime(@NonNull final Data data, final int offset) {
		if (data.size() < offset + 7)
			return null;

		final Calendar calendar = Calendar.getInstance();
		final int year = data.getIntValue(Data.FORMAT_UINT16_LE, offset);
		final int month = data.getIntValue(Data.FORMAT_UINT8, offset + 2);
		final int day = data.getIntValue(Data.FORMAT_UINT8, offset + 3);
		if (year > 0)
			calendar.set(Calendar.YEAR, year);
		else
			calendar.clear(Calendar.YEAR);
		if (month > 0)
			calendar.set(Calendar.MONTH, month - 1); // months are 1-based in Date Time characteristic
		else
			calendar.clear(Calendar.MONTH);
		if (day > 0)
			calendar.set(Calendar.DATE, day);
		else
			calendar.clear(Calendar.DATE);
		calendar.set(Calendar.HOUR_OF_DAY, data.getIntValue(Data.FORMAT_UINT8, offset + 4));
		calendar.set(Calendar.MINUTE, data.getIntValue(Data.FORMAT_UINT8, offset + 5));
		calendar.set(Calendar.SECOND, data.getIntValue(Data.FORMAT_UINT8, offset + 6));
		calendar.set(Calendar.MILLISECOND, 0);
		return calendar;
	}
Returns a Gregorian Calendar object with YEAR, MONTH, DATE, HOUR, MINUTE, SECONDS set from
the data at given offset using the Date Time characteristic format.
MILLISECONDS are set to 0. Time Zone and DST offset are from the local time zone.
<p>
If YEAR, MONTH or DATE are set to 0 in the data, the corresponding fields in the calendar are 'unset',
that is {@code calendar.isSet(Calendar.YEAR)} returns false.
</p>

@param data input data (7 bytes required).
@param offset offset to read from.
@return Calendar object or null.
@noinspection DataFlowIssue
ble-common/src/main/java/no/nordicsemi/android/ble/common/callback/DateTimeDataCallback.java