Use correct time zone offset for invariant DateTimeOffset formats
authorMarek Safar <marek.safar@gmail.com>
Thu, 26 Jan 2012 12:10:55 +0000 (07:10 -0500)
committerMarek Safar <marek.safar@gmail.com>
Thu, 26 Jan 2012 12:16:13 +0000 (07:16 -0500)
mcs/class/corlib/System/DateTimeOffset.cs

index 5f83b2c7bd1da7ec527ab73c64f13a0d83e0f699..d2f45bca927103b4ff8ef373b1c3f11c1b3d3ce2 100644 (file)
@@ -623,11 +623,16 @@ namespace System
                        }
 
                        //Console.WriteLine ("{0}-{1}-{2} {3}:{4} {5}", year, month, day, hour, minute, offset);
-                       if (offset == TimeSpan.MinValue && (styles & DateTimeStyles.AssumeLocal) != 0)
-                               offset = TimeZone.CurrentTimeZone.GetUtcOffset (DateTime.Now);
+                       if (offset == TimeSpan.MinValue) {
+                               if ((styles & DateTimeStyles.AssumeUniversal) != 0) {
+                                       offset = TimeSpan.Zero;
+                               } else if ((styles & DateTimeStyles.AssumeLocal) != 0) {
+                                       offset = use_invariants ?
+                                               TimeSpan.Zero :
+                                               TimeZone.CurrentTimeZone.GetUtcOffset (DateTime.Now);
+                               }
+                       }
 
-                       if (offset == TimeSpan.MinValue && (styles & DateTimeStyles.AssumeUniversal) != 0)
-                               offset = TimeSpan.Zero;
 
                        if (hour < 0)           hour = 0;
                        if (minute < 0)         minute = 0;