[Mono-dev] DateTime unspecified-to-localtime conversions different between mono and .net
Avery Pennarun
apenwarr at gmail.com
Wed Nov 28 16:51:22 EST 2007
Hi all,
I tried the following program in Microsoft .NET 2.0 and 3.5 (same
results both times) and mono 1.2.3 and 1.2.5 (same results both
times).
I see two main differences here:
1) Dates after the Y2.038k bug in 2038 do not calculate daylight
savings time correctly.
2) DateTime.Parse in .NET seems to return a timezone-unspecified
DateTime, such that converting it ToLocalTime() or ToUniversalTime()
will always change the timestamp in one direction or the other. In
mono, it seems to be a timezone-localtime DateTime, so that
ToLocalTime() has no effect.
Should I file a bug with this? I've heard of people having trouble
signing up for the new bugzilla, is that fixed?
Thanks,
Avery
Source code:
using System;
public static class Test
{
public static void test(DateTime dt)
{
System.Console.WriteLine("{0} -- {1}",
dt.ToLocalTime(), dt.ToUniversalTime());
System.Console.WriteLine(" {0} -- {1} -- {2}",
dt.Ticks, dt.ToLocalTime().Ticks, dt.ToUniversalTime().Ticks);
}
public static void Main()
{
test(DateTime.Parse("2007-09-27 5:14:14"));
test(DateTime.Parse("2007-11-27 5:14:14"));
test(DateTime.Parse("2039-09-27 5:14:14"));
test(DateTime.Parse("2039-11-27 5:14:14"));
test(DateTime.Parse("0001-01-01 10:01:02"));
}
}
Results in .NET:
9-27-2007 1:14:14 AM -- 9-27-2007 9:14:14 AM
633264668540000000 -- 633264524540000000 -- 633264812540000000
11-27-2007 12:14:14 AM -- 11-27-2007 10:14:14 AM
633317372540000000 -- 633317192540000000 -- 633317552540000000
9-27-2039 1:14:14 AM -- 9-27-2039 9:14:14 AM
643363100540000000 -- 643362956540000000 -- 643363244540000000
11-27-2039 12:14:14 AM -- 11-27-2039 10:14:14 AM
643415804540000000 -- 643415624540000000 -- 643415984540000000
1-1-0001 5:01:02 AM -- 1-1-0001 3:01:02 PM
360620000000 -- 180620000000 -- 540620000000
Results in mono:
27/09/2007 5:14:14 AM -- 27/09/2007 9:14:14 AM
633264668540000000 -- 633264668540000000 -- 633264812540000000
27/11/2007 5:14:14 AM -- 27/11/2007 10:14:14 AM
633317372540000000 -- 633317372540000000 -- 633317552540000000
27/09/2039 5:14:14 AM -- 27/09/2039 10:14:14 AM
643363100540000000 -- 643363100540000000 -- 643363280540000000
27/11/2039 5:14:14 AM -- 27/11/2039 10:14:14 AM
643415804540000000 -- 643415804540000000 -- 643415984540000000
01/01/0001 10:01:02 AM -- 01/01/0001 3:01:02 PM
360620000000 -- 360620000000 -- 540620000000
More information about the Mono-devel-list
mailing list