System.Xml.XmlConverter.ToChars C# (CSharp) Méthode

ToChars() static public méthode

static public ToChars ( System.DateTime value, byte chars, int offset ) : int
value System.DateTime
chars byte
offset int
Résultat int
        static public int ToChars(DateTime value, byte[] chars, int offset)
        {
            const long TicksPerMillisecond = 10000;
            const long TicksPerSecond = TicksPerMillisecond * 1000;
            int offsetMin = offset;
            // "yyyy-MM-ddTHH:mm:ss.fffffff";
            offset += ToCharsD4(value.Year, chars, offset);
            chars[offset++] = (byte)'-';
            offset += ToCharsD2(value.Month, chars, offset);
            chars[offset++] = (byte)'-';
            offset += ToCharsD2(value.Day, chars, offset);
            chars[offset++] = (byte)'T';
            offset += ToCharsD2(value.Hour, chars, offset);
            chars[offset++] = (byte)':';
            offset += ToCharsD2(value.Minute, chars, offset);
            chars[offset++] = (byte)':';
            offset += ToCharsD2(value.Second, chars, offset);
            int ms = (int)(value.Ticks % TicksPerSecond);
            if (ms != 0)
            {
                chars[offset++] = (byte)'.';
                offset += ToCharsD7(ms, chars, offset);
            }
            switch (value.Kind)
            {
                case DateTimeKind.Unspecified:
                    break;
                case DateTimeKind.Local:
                    // +"zzzzzz";
                    TimeSpan ts = TimeZoneInfo.Local.GetUtcOffset(value);
                    if (ts.Ticks < 0)
                        chars[offset++] = (byte)'-';
                    else
                        chars[offset++] = (byte)'+';
                    offset += ToCharsD2(Math.Abs(ts.Hours), chars, offset);
                    chars[offset++] = (byte)':';
                    offset += ToCharsD2(Math.Abs(ts.Minutes), chars, offset);
                    break;
                case DateTimeKind.Utc:
                    // +"Z"
                    chars[offset++] = (byte)'Z';
                    break;
                default:
                    throw System.Runtime.Serialization.DiagnosticUtility.ExceptionUtility.ThrowHelperError(new InvalidOperationException());
            }
            return offset - offsetMin;
        }

Same methods

XmlConverter::ToChars ( System.UInt64 value, byte buffer, int offset ) : int
XmlConverter::ToChars ( bool value, byte buffer, int offset ) : int
XmlConverter::ToChars ( byte buffer, int offset, int count, char chars, int charOffset ) : int
XmlConverter::ToChars ( decimal value, byte buffer, int offset ) : int
XmlConverter::ToChars ( double value, byte buffer, int offset ) : int
XmlConverter::ToChars ( float value, byte buffer, int offset ) : int
XmlConverter::ToChars ( int value, byte chars, int offset ) : int
XmlConverter::ToChars ( long value, byte chars, int offset ) : int

Usage Example

Exemple #1
0
        public override void WriteDateTimeText(DateTime value)
        {
            int offset;

            byte[] buffer = GetBuffer(XmlConverter.MaxDateTimeChars, out offset);
            Advance(XmlConverter.ToChars(value, buffer, offset));
        }
All Usage Examples Of System.Xml.XmlConverter::ToChars