Example #1
0
        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);
        }
Example #2
0
        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)));
        }
Example #3
0
        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)));
        }