@@ -30,9 +30,9 @@ public static class DateTimeSerializer
3030 public const string XsdDateTimeFormat3F = "yyyy-MM-ddTHH:mm:ss.fffZ" ; //25
3131 public const string XsdDateTimeFormatSeconds = "yyyy-MM-ddTHH:mm:ssZ" ; //21
3232 public const string DateTimeFormatSecondsUtcOffset = "yyyy-MM-ddTHH:mm:sszzz" ; //22
33- public const string DateTimeFormatSecondsNoOffset = "yyyy-MM-ddTHH:mm:ss" ;
33+ public const string DateTimeFormatSecondsNoOffset = "yyyy-MM-ddTHH:mm:ss" ;
3434 public const string DateTimeFormatTicksUtcOffset = "yyyy-MM-ddTHH:mm:ss.fffffffzzz" ; //30
35- public const string DateTimeFormatTicksNoUtcOffset = "yyyy-MM-ddTHH:mm:ss.fffffff" ;
35+ public const string DateTimeFormatTicksNoUtcOffset = "yyyy-MM-ddTHH:mm:ss.fffffff" ;
3636
3737 public const string EscapedWcfJsonPrefix = "\\ /Date(" ;
3838 public const string EscapedWcfJsonSuffix = ")\\ /" ;
@@ -56,14 +56,11 @@ public static class DateTimeSerializer
5656 public static DateTime Prepare ( this DateTime dateTime , bool parsedAsUtc = false )
5757 {
5858 if ( JsConfig . SkipDateTimeConversion )
59- {
6059 return dateTime ;
61- }
60+
6261 if ( JsConfig . AlwaysUseUtc )
63- {
6462 return dateTime . Kind != DateTimeKind . Utc ? dateTime . ToStableUniversalTime ( ) : dateTime ;
65- }
66-
63+
6764 return parsedAsUtc ? dateTime . ToLocalTime ( ) : dateTime ;
6865 }
6966
@@ -102,14 +99,14 @@ public static DateTime ParseShortestXsdDateTime(string dateTimeStr)
10299
103100 if ( dateTimeStr . Length == DefaultDateTimeFormatWithFraction . Length )
104101 {
105- var unspecifiedDate = JsConfig . AssumeUtc
102+ var unspecifiedDate = JsConfig . AssumeUtc
106103 ? DateTime . Parse ( dateTimeStr , CultureInfo . InvariantCulture , DateTimeStyles . AssumeUniversal )
107104 : DateTime . Parse ( dateTimeStr , CultureInfo . InvariantCulture ) ;
108105
109106 return unspecifiedDate . Prepare ( ) ;
110107 }
111- DateTimeKind kind = DateTimeKind . Unspecified ;
112108
109+ var kind = DateTimeKind . Unspecified ;
113110 switch ( JsConfig . DateHandler )
114111 {
115112 case DateHandler . UnixTime :
@@ -124,9 +121,7 @@ public static DateTime ParseShortestXsdDateTime(string dateTimeStr)
124121 break ;
125122 case DateHandler . ISO8601 :
126123 if ( JsConfig . SkipDateTimeConversion )
127- {
128- dateTimeStr = RemoveUtcOffsets ( dateTimeStr , out kind ) ;
129- }
124+ dateTimeStr = RemoveUtcOffsets ( dateTimeStr , out kind ) ;
130125 break ;
131126 }
132127
@@ -164,21 +159,18 @@ public static DateTime ParseShortestXsdDateTime(string dateTimeStr)
164159
165160 try
166161 {
167- DateTime dateTime ;
168162 if ( JsConfig . SkipDateTimeConversion )
169163 {
170- dateTime = DateTime . Parse ( dateTimeStr , null ,
171- kind == DateTimeKind . Unspecified ?
172- DateTimeStyles . None :
173- kind == DateTimeKind . Local ?
174- DateTimeStyles . AssumeLocal :
175- DateTimeStyles . AssumeUniversal ) ;
176- }
177- else
178- {
179- var assumeKind = JsConfig . AssumeUtc ? DateTimeStyles . AssumeUniversal : DateTimeStyles . AssumeLocal ;
180- dateTime = DateTime . Parse ( dateTimeStr , CultureInfo . InvariantCulture , assumeKind ) ;
164+ return DateTime . Parse ( dateTimeStr , null ,
165+ kind == DateTimeKind . Unspecified
166+ ? DateTimeStyles . None
167+ : kind == DateTimeKind . Local
168+ ? DateTimeStyles . AssumeLocal
169+ : DateTimeStyles . AssumeUniversal ) ;
181170 }
171+
172+ var assumeKind = JsConfig . AssumeUtc ? DateTimeStyles . AssumeUniversal : DateTimeStyles . AssumeLocal ;
173+ var dateTime = DateTime . Parse ( dateTimeStr , CultureInfo . InvariantCulture , assumeKind ) ;
182174 return dateTime . Prepare ( ) ;
183175 }
184176 catch ( FormatException )
@@ -200,14 +192,14 @@ public static DateTime ParseShortestXsdDateTime(string dateTimeStr)
200192 }
201193
202194 private static string RemoveUtcOffsets ( string dateTimeStr , out DateTimeKind kind )
203- {
195+ {
204196 var startOfTz = UtcOffsetInfoRegex . Match ( dateTimeStr ) ;
205- if ( startOfTz . Index > 0 )
197+ if ( startOfTz . Index > 0 )
206198 {
207- kind = DateTimeKind . Local ;
199+ kind = DateTimeKind . Local ;
208200 return dateTimeStr . Substring ( 0 , startOfTz . Index ) ;
209201 }
210- kind = dateTimeStr . Contains ( "Z" ) ? DateTimeKind . Utc : DateTimeKind . Unspecified ;
202+ kind = dateTimeStr . Contains ( "Z" ) ? DateTimeKind . Utc : DateTimeKind . Unspecified ;
211203 return dateTimeStr ;
212204 }
213205
@@ -230,7 +222,7 @@ private static string RepairXsdTimeSeparator(string dateTimeStr)
230222
231223 public static DateTime ? ParseManual ( string dateTimeStr )
232224 {
233- var dateKind = JsConfig . AssumeUtc || JsConfig . AlwaysUseUtc
225+ var dateKind = JsConfig . AssumeUtc || JsConfig . AlwaysUseUtc
234226 ? DateTimeKind . Utc
235227 : DateTimeKind . Local ;
236228
@@ -251,7 +243,7 @@ private static string RepairXsdTimeSeparator(string dateTimeStr)
251243 if ( dateTimeStr . EndsWith ( XsdUtcSuffix ) )
252244 {
253245 dateTimeStr = dateTimeStr . Substring ( 0 , dateTimeStr . Length - 1 ) ;
254- dateKind = JsConfig . SkipDateTimeConversion ? DateTimeKind . Utc : dateKind ;
246+ dateKind = JsConfig . SkipDateTimeConversion ? DateTimeKind . Utc : dateKind ;
255247 }
256248
257249 var parts = dateTimeStr . Split ( 'T' ) ;
@@ -371,7 +363,7 @@ public static DateTimeOffset ParseDateTimeOffset(string dateTimeOffsetStr)
371363 if ( Env . IsMono )
372364 {
373365 // Without that Mono uses a Local timezone))
374- dateTimeOffsetStr = dateTimeOffsetStr . Substring ( 0 , dateTimeOffsetStr . Length - 1 ) + "+00:00" ;
366+ dateTimeOffsetStr = dateTimeOffsetStr . Substring ( 0 , dateTimeOffsetStr . Length - 1 ) + "+00:00" ;
375367 }
376368 }
377369
@@ -415,7 +407,7 @@ public static TimeSpan ParseTimeSpan(string dateTimeStr)
415407 {
416408 return dateTimeStr . StartsWith ( "P" , StringComparison . Ordinal ) || dateTimeStr . StartsWith ( "-P" , StringComparison . Ordinal )
417409 ? ParseXsdTimeSpan ( dateTimeStr )
418- : dateTimeStr . Contains ( ":" )
410+ : dateTimeStr . Contains ( ":" )
419411 ? TimeSpan . Parse ( dateTimeStr )
420412 : ParseNSTimeInterval ( dateTimeStr ) ;
421413 }
@@ -450,11 +442,12 @@ public static string ToShortestXsdDateTimeString(DateTime dateTime)
450442 var timeOfDay = dateTime . TimeOfDay ;
451443
452444 var isStartOfDay = timeOfDay . Ticks == 0 ;
453- if ( isStartOfDay && ! ( JsConfig . SkipDateTimeConversion ) )
445+ if ( isStartOfDay && ! JsConfig . SkipDateTimeConversion )
454446 return dateTime . ToString ( ShortDateTimeFormat ) ;
455447
456- var hasFractionalSecs = ( timeOfDay . Milliseconds != 0 )
457- || ( ( timeOfDay . Ticks % TimeSpan . TicksPerMillisecond ) != 0 ) ;
448+ var hasFractionalSecs = ( timeOfDay . Milliseconds != 0 )
449+ || ( timeOfDay . Ticks % TimeSpan . TicksPerMillisecond != 0 ) ;
450+
458451 if ( JsConfig . SkipDateTimeConversion )
459452 {
460453 if ( ! hasFractionalSecs )
@@ -470,6 +463,7 @@ public static string ToShortestXsdDateTimeString(DateTime dateTime)
470463 ? dateTime . ToString ( DateTimeFormatTicksNoUtcOffset )
471464 : PclExport . Instance . ToXsdDateTimeString ( dateTime ) ;
472465 }
466+
473467 if ( ! hasFractionalSecs )
474468 return dateTime . Kind != DateTimeKind . Utc
475469 ? dateTime . ToString ( DateTimeFormatSecondsUtcOffset )
@@ -594,15 +588,7 @@ public static void WriteWcfJsonDate(TextWriter writer, DateTime dateTime)
594588
595589 if ( JsConfig . DateHandler == DateHandler . ISO8601 )
596590 {
597- if ( ! JsConfig . SkipDateTimeConversion )
598- {
599591 writer . Write ( dateTime . ToString ( "o" , CultureInfo . InvariantCulture ) ) ;
600- }
601- else
602- {
603- var dt = dateTime . ToString ( "o" , CultureInfo . InvariantCulture ) ;
604- writer . Write ( dt ) ;
605- }
606592 return ;
607593 }
608594
0 commit comments