System.DateTimeParse.TryParseExactMultiple C# (CSharp) Method

TryParseExactMultiple() static private method

static private TryParseExactMultiple ( String s, String formats, DateTimeFormatInfo dtfi, DateTimeStyles style, DateTimeResult &result ) : bool
s String
formats String
dtfi DateTimeFormatInfo
style DateTimeStyles
result DateTimeResult
return bool
        internal static bool TryParseExactMultiple(String s, String[] formats,
                                                DateTimeFormatInfo dtfi, DateTimeStyles style, ref DateTimeResult result) {
            if (s == null) {
                result.SetFailure(ParseFailureKind.ArgumentNull, "ArgumentNull_String", null, "s");
                return false;
            }
            if (formats == null) {
                result.SetFailure(ParseFailureKind.ArgumentNull, "ArgumentNull_String", null, "formats");
                return false;
            }

            if (s.Length == 0) {
                result.SetFailure(ParseFailureKind.Format, "Format_BadDateTime", null);
                return false;
            }

            if (formats.Length == 0) {
                result.SetFailure(ParseFailureKind.Format, "Format_BadFormatSpecifier", null);
                return false;
            }

            BCLDebug.Assert(dtfi != null, "dtfi == null");

            //
            // Do a loop through the provided formats and see if we can parse succesfully in
            // one of the formats.
            //
            for (int i = 0; i < formats.Length; i++) {
                if (formats[i] == null || formats[i].Length == 0) {
                    result.SetFailure(ParseFailureKind.Format, "Format_BadFormatSpecifier", null);
                    return false;
                }
                if (TryParseExact(s, formats[i], dtfi, style, out result.parsedDate)) {
                    return (true);
                }
            }
            result.SetFailure(ParseFailureKind.Format, "Format_BadDateTime", null);
            return (false);
        }

Same methods

DateTimeParse::TryParseExactMultiple ( String s, String formats, DateTimeFormatInfo dtfi, DateTimeStyles style, DateTime &result ) : bool

Usage Example

示例#1
0
        public static bool TryParseExact(
            ReadOnlySpan <char> input, [NotNullWhen(true)] string?[]?formats, IFormatProvider?formatProvider, DateTimeStyles styles, out DateTimeOffset result)
        {
            styles = ValidateStyles(styles, nameof(styles));
            bool parsed = DateTimeParse.TryParseExactMultiple(input, formats, DateTimeFormatInfo.GetInstance(formatProvider), styles, out DateTime dateResult, out TimeSpan offset);

            result = new DateTimeOffset(dateResult.Ticks, offset);
            return(parsed);
        }
All Usage Examples Of System.DateTimeParse::TryParseExactMultiple