263 {
264 int num = 27;
266 if (
offset == Utf8Constants.NullUtcOffset)
267 {
268 dateTimeKind =
value.Kind;
269 switch (dateTimeKind)
270 {
273 num += 6;
274 break;
276 num++;
277 break;
278 }
279 }
280 else
281 {
282 num += 6;
283 }
285 {
286 bytesWritten = 0;
287 return false;
288 }
289 bytesWritten = num;
291 value.GetDate(out var
year, out var month, out var day);
292 value.GetTimePrecise(out var hour, out var minute, out var second, out var tick);
295 FormattingHelpers.WriteTwoDecimalDigits((uint)month,
destination, 5);
297 FormattingHelpers.WriteTwoDecimalDigits((uint)day,
destination, 8);
299 FormattingHelpers.WriteTwoDecimalDigits((uint)hour,
destination, 11);
301 FormattingHelpers.WriteTwoDecimalDigits((uint)minute,
destination, 14);
303 FormattingHelpers.WriteTwoDecimalDigits((uint)second,
destination, 17);
305 FormattingHelpers.WriteDigits((uint)tick,
destination.Slice(20, 7));
306 switch (dateTimeKind)
307 {
309 {
310 int num2 = (int)(
offset.Ticks / 600000000);
311 byte b;
312 if (num2 < 0)
313 {
314 b = 45;
315 num2 = -num2;
316 }
317 else
318 {
319 b = 43;
320 }
321 int result;
322 int value2 = Math.DivRem(num2, 60, out result);
323 FormattingHelpers.WriteTwoDecimalDigits((uint)result,
destination, 31);
325 FormattingHelpers.WriteTwoDecimalDigits((uint)value2,
destination, 28);
327 break;
328 }
331 break;
332 }
333 return true;
334 }