public void DigitChecking(DateTime dt) { Span <char> outputChars = stackalloc char[50]; Assert.True(DateTimeFormatter.TryFormat(dt, outputChars, out var written)); Assert.True(DateTimeParser.TryParseDateTime(outputChars, out var outputDt, out var consumed)); Assert.Equal(dt, outputDt); Assert.Equal(written, consumed); Span <byte> outputBytes = stackalloc byte[50]; Assert.True(DateTimeFormatter.TryFormat(dt, outputBytes, out written)); Assert.True(DateTimeParser.TryParseDateTime(outputBytes, out outputDt, out consumed)); Assert.Equal(dt, outputDt); Assert.Equal(written, consumed); var dto = new DateTimeOffset(dt); Assert.True(DateTimeFormatter.TryFormat(dto, outputChars, out written)); Assert.True(DateTimeParser.TryParseDateTime(outputChars, out var outputdto, out consumed)); Assert.Equal(dto, outputdto); Assert.Equal(written, consumed); Assert.True(DateTimeFormatter.TryFormat(dto, outputBytes, out written)); Assert.True(DateTimeParser.TryParseDateTime(outputBytes, out outputdto, out consumed)); Assert.Equal(dto, outputdto); Assert.Equal(written, consumed); }
public void FormatDateTime(string comparison, int year, int month, int day, int hour, int minute, int second, int fraction, DateTimeKind kind) { var value = new DateTime(year, month, day, hour, minute, second, kind).AddTicks(fraction); Span <char> charSpan = stackalloc char[35]; Assert.True(DateTimeFormatter.TryFormat(value, charSpan, out var symbolsWritten)); Assert.Equal(comparison, charSpan.Slice(0, symbolsWritten).ToString()); Span <byte> byteSpan = stackalloc byte[35]; Assert.True(DateTimeFormatter.TryFormat(value, byteSpan, out symbolsWritten)); Assert.Equal(comparison, Encoding.UTF8.GetString(byteSpan.Slice(0, symbolsWritten))); }
public void LocalTime() { var value = DateTime.Now; value = value.AddTicks(-(value.Ticks % TimeSpan.TicksPerSecond)); var offset = TimeZoneInfo.Local.GetUtcOffset(value); var output = value.ToString("yyyy-MM-ddTHH:mm:ss"); var sign = offset.Hours < 0 ? '-' : '+'; output = output + sign + $"{offset.Hours:D2}:{offset.Minutes:D2}"; Span <char> charSpan = stackalloc char[35]; Assert.True(DateTimeFormatter.TryFormat(value, charSpan, out var symbolsWritten)); Assert.Equal(output, charSpan.Slice(0, symbolsWritten).ToString()); Span <byte> byteSpan = stackalloc byte[35]; Assert.True(DateTimeFormatter.TryFormat(value, byteSpan, out symbolsWritten)); Assert.Equal(output, Encoding.UTF8.GetString(byteSpan.Slice(0, symbolsWritten))); }