public static string ToLabelString(
            this DateSeparatorFormat format,
            DateTimeSettings currentSettings,
            DateTime sampleTime
            )
        {
            string label;

            if (format == DateSeparatorFormat.Dashes)
            {
                label = "Dashes";
            }
            else // Slashes is the default.
            {
                label = "Slashes";
            }

            DateTimeSettings settings = currentSettings with {
                DateSeparatorFormat = format
            };

            return($"{label} ({sampleTime.ToSettingsString( settings )})");
        }
        // -------- ToSettingsString --------

        /// <summary>
        /// Reads in the settings and returns a string representation
        /// of the <see cref="DateTime"/> object based on the settings.
        /// </summary>
        public static string ToSettingsString(this DateTime date, DateTimeSettings settings)
        {
            ArgumentNullException.ThrowIfNull(settings, nameof(settings));

            date = date.ToTimeZoneTime(settings);

            DateFormat          dateFormat    = settings.DateFormat;
            MonthFormat         monthFormat   = settings.MonthFormat;
            DateSeparatorFormat dateSepFormat = settings.DateSeparatorFormat;
            TimeFormat          timeFormat    = settings.TimeFormat;

            char dateSeparator;

            if (dateSepFormat == DateSeparatorFormat.Dashes)
            {
                dateSeparator = '-';
            }
            else // Slashes are the default.
            {
                dateSeparator = '/';
            }

            string monthFormatString;

            if (monthFormat == MonthFormat.ThreeLetters)
            {
                monthFormatString = "MMM";
            }
            else if (monthFormat == MonthFormat.FullMonth)
            {
                monthFormatString = "MMMM";
            }
            else // Number is the default.
            {
                monthFormatString = "MM";
            }

            string hourFormatString;
            string amPmFormatString;

            if (timeFormat == TimeFormat.Hour24)
            {
                hourFormatString = "HH";
                amPmFormatString = string.Empty;
            }
            else // 12 hour is the default.
            {
                hourFormatString = "hh";
                amPmFormatString = " tt";
            }

            string timeFormatString = $"{hourFormatString}:mm{amPmFormatString}";
            string formatString;

            if (dateFormat == DateFormat.DayMonthYear)
            {
                formatString = $"dd{dateSeparator}{monthFormatString}{dateSeparator}yyyy {timeFormatString}";
            }
            else if (dateFormat == DateFormat.YearMonthDay)
            {
                formatString = $"yyyy{dateSeparator}{monthFormatString}{dateSeparator}dd {timeFormatString}";
            }
            else // Month/Day/Year is the default.
            {
                formatString = $"{monthFormatString}{dateSeparator}dd{dateSeparator}yyyy {timeFormatString}";
            }

            return(date.ToString(formatString));
        }