Blog Stats
  • Posts - 17
  • Articles - 1
  • Comments - 7
  • Trackbacks - 22

 

Interesting "gotcha" when working with xs:date fields in BizTalk 2004

I was working with a schema this week that had an <xs:date> type in it. I loaded the schema into BizTalk and set the <xs:date> field to be a distinguished property. When accessing the property I noticed that it had converted the xs:date property to a System.DateTime type.

What had happened was that the date had been converted to UTC format behind the scenes; From the bizTalk docs (If the datetime format does not specify time zone or UTC format, the time is assumed to be local and is converted to UTC based on the current time zone.)

e.g. Say the date that was passed in was ‘2004-10-26’ when I accessed it by the distinguished property it’s value was ‘2004-10-25 11:00:00’ (UTC-13) - New Zealand timezone… therefore “distinguishedDeliveryDate.ToString("dd/MM/yyyy",System.Globalization.CultureInfo.InvariantCulture)” returned 25/10/2004 instead of what I was looking for 26/10/2004.

The solution:
Convert the datetime back from UTC datetime to local datetime using something similar to:

distinguishedDeliveryDate  = distinguishedDeliveryDate.Add(TimeZone.CurrentTimeZone.GetUtcOffset(distinguishedDeliveryDate));

VOLA


Feedback

# re: Interesting "gotcha" when working with xs:date fields in BizTalk 2004

Gravatar Hey,

I think that if you look into it a bit more you find that this is a general .NET problem when serializing DateTimes into Xml.

But a good solution to the problem 11/7/2004 11:13 PM | Barry Latimer

Post a comment





 

 

 

Copyright © Nigel Parker