+
/*
* System.TimeZoneInfo
*
if (this == TimeZoneInfo.Utc)
return DateTime.SpecifyKind (dateTime, DateTimeKind.Utc);
-
+
//FIXME: do not rely on DateTime implementation !
- if (this == TimeZoneInfo.Local)
+ if (this == TimeZoneInfo.Local)
+ {
+#if NET_4_0
+ return dateTime.ToLocalTime ();
+#else
return DateTime.SpecifyKind (dateTime.ToLocalTime (), DateTimeKind.Unspecified);
+#endif
+ }
+
AdjustmentRule rule = GetApplicableRule (dateTime);
}
+
+ [Test]
+ public void ConvertFromToLocal ()
+ {
+ DateTime utc = DateTime.UtcNow;
+ Assert.AreEqual(utc.Kind, DateTimeKind.Utc);
+ DateTime converted = TimeZoneInfo.ConvertTimeFromUtc(utc, TimeZoneInfo.Local);
+ #if NET_4_0
+ Assert.AreEqual(DateTimeKind.Local, converted.Kind);
+ #else
+ Assert.AreEqual(DateTimeKind.Unspecified, converted.Kind);
+ #endif
+ DateTime back = TimeZoneInfo.ConvertTimeToUtc(converted, TimeZoneInfo.Local);
+ Assert.AreEqual(back.Kind, DateTimeKind.Utc);
+ Assert.AreEqual(utc, back);
+ }
+
[Test]
public void ConvertToTimeZone ()
{