Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ TryParse() [3/16]

static bool System.Buffers.Text.Utf8Parser.TryParse ( ReadOnlySpan< byte > source,
out DateTime value,
out int bytesConsumed,
char standardFormat = '\0' )
inlinestatic

Definition at line 206 of file Utf8Parser.cs.

207 {
208 switch (standardFormat)
209 {
210 case 'R':
211 {
212 if (!TryParseDateTimeOffsetR(source, 0u, out var dateTimeOffset, out bytesConsumed))
213 {
214 value = default(DateTime);
215 return false;
216 }
217 value = dateTimeOffset.DateTime;
218 return true;
219 }
220 case 'l':
221 {
222 if (!TryParseDateTimeOffsetR(source, 32u, out var dateTimeOffset2, out bytesConsumed))
223 {
224 value = default(DateTime);
225 return false;
226 }
227 value = dateTimeOffset2.DateTime;
228 return true;
229 }
230 case 'O':
231 {
232 if (!TryParseDateTimeOffsetO(source, out var value2, out bytesConsumed, out var kind))
233 {
234 value = default(DateTime);
235 bytesConsumed = 0;
236 return false;
237 }
238 switch (kind)
239 {
240 case DateTimeKind.Local:
241 value = value2.LocalDateTime;
242 break;
243 case DateTimeKind.Utc:
244 value = value2.UtcDateTime;
245 break;
246 default:
247 value = value2.DateTime;
248 break;
249 }
250 return true;
251 }
252 case '\0':
253 case 'G':
254 {
255 DateTimeOffset valueAsOffset;
256 return TryParseDateTimeG(source, out value, out valueAsOffset, out bytesConsumed);
257 }
258 default:
259 return ParserHelpers.TryParseThrowFormatException<DateTime>(out value, out bytesConsumed);
260 }
261 }
static bool TryParseDateTimeOffsetR(ReadOnlySpan< byte > source, uint caseFlipXorMask, out DateTimeOffset dateTimeOffset, out int bytesConsumed)
static bool TryParseDateTimeOffsetO(ReadOnlySpan< byte > source, out DateTimeOffset value, out int bytesConsumed, out DateTimeKind kind)
static bool TryParseDateTimeG(ReadOnlySpan< byte > source, out DateTime value, out DateTimeOffset valueAsOffset, out int bytesConsumed)

References System.source, System.Buffers.Text.Utf8Parser.TryParseDateTimeG(), System.Buffers.Text.Utf8Parser.TryParseDateTimeOffsetO(), System.Buffers.Text.Utf8Parser.TryParseDateTimeOffsetR(), System.Buffers.Text.ParserHelpers.TryParseThrowFormatException(), and System.value.