|
dev
newsgroups
|
|||||||||||||||||||||||
|
|||||||||||||||||||||||
DateTime trasfer with web services - DST 2007 errorspassing a DateTime back from a web service. The client shows a duplicate 3:00 AM hour on 3/11/2007. Here is a dump of the output. See the duplicate 3:00 AM value on the client dump: [2864] WS DUMP: 3/11/2007 12:00 AM 3/11/2007 5:00:00 AM 3 11 2007 0 0 [2864] WS DUMP: 3/11/2007 1:00 AM 3/11/2007 6:00:00 AM 3 11 2007 1 0 [2864] WS DUMP: 3/11/2007 2:00 AM 3/11/2007 7:00:00 AM 3 11 2007 2 0 [2864] WS DUMP: 3/11/2007 3:00 AM 3/11/2007 7:00:00 AM 3 11 2007 3 0 [2864] WS DUMP: 3/11/2007 4:00 AM 3/11/2007 8:00:00 AM 3 11 2007 4 0 [3976] CLIENT DUMP: 3/11/2007 12:00 AM 3/11/2007 5:00:00 AM 3 11 2007 0 0 [3976] CLIENT DUMP: 3/11/2007 1:00 AM 3/11/2007 6:00:00 AM 3 11 2007 1 0 [3976] CLIENT DUMP: 3/11/2007 3:00 AM 3/11/2007 7:00:00 AM 3 11 2007 3 0 [3976] CLIENT DUMP: 3/11/2007 3:00 AM 3/11/2007 7:00:00 AM 3 11 2007 3 0 [3976] CLIENT DUMP: 3/11/2007 4:00 AM 3/11/2007 8:00:00 AM 3 11 2007 4 0 Here is the sample code: Web service classes: ============ Interval.cs ================ using System; namespace WSDSTTest { /// <summary> /// Summary description for Class1. /// </summary> public class Interval { private DateTime dt; public DateTime Dt { get { return dt; } set { dt = value; } } } } ================= Dataitem.cs============== using System; namespace WSDSTTest { /// <summary> /// Summary description for DataItem. /// </summary> public class DataItem { public Interval [] Intervals; public DataItem(){} } } =================================== Test Method [WebMethod] public void Test( DateTime tsStart , out DataItem [] DataList ) { const int width = 60; int intervals = 5*60/width; DateTime ts = tsStart; DataList = new DataItem[1]; DataList[0] = new DataItem(); DataList[0].Intervals = new Interval[intervals]; for ( int idx = 0; idx < intervals; idx++ ) { DataList[0].Intervals[idx] = new Interval(); DataList[0].Intervals[idx].Dt = ts; ts = ts.AddMinutes( width ); } DateTime dval; for ( int xx = 0; xx < intervals; xx++ ) { dval = DataList[0].Intervals[xx].Dt ; System.Diagnostics.Trace.WriteLine( "WS DUMP: " + dval.ToShortDateString() + " " + dval.ToShortTimeString() + " " + dval.ToUniversalTime().ToString() + " " + dval.Month.ToString() + " " + dval.Day.ToString() + " " + dval.Year.ToString() + " " + dval.Hour.ToString() + " " + dval.Minute.ToString() ); } } == Client call test DataItem [] di; Service1 s1 = new localhost.Service1 (); di = s1.Test( ts1 ); DateTime dval; for ( int idx = 0; idx < di[0].Intervals.Length; idx ++ ) { dval = di[0].Intervals[idx].Dt; System.Diagnostics.Trace.WriteLine( "CLIENT DUMP: " + dval.ToShortDateString() + " " + dval.ToShortTimeString() + " " + dval.ToUniversalTime().ToString() + " " + dval.Month.ToString() + " " + dval.Day.ToString() + " " + dval.Year.ToString() + " " + dval.Hour.ToString() + " " + dval.Minute.ToString() ); } |
|||||||||||||||||||||||