This post was originally published here

NZ daylight saving time ends at 3a.m today (2/3/2017) ends. To celebrate this I am going to share a string datetime functoid that I have used  for many years.

A common task when mapping one message to another is transforming a date e.g. 1/3/17 15:30 to 2017-03-01T15:30+13:00. Many years ago I was reviewing some maps in  a BizTalk solution and discovered that just about every map was using different C# code in a C# scripting functoid to transform between date formats. I decided to create a functoid that would convert any string that was a valid date to any other date format. The two objectives were to make sure that all date format changes were consistent and it was easy to use.

Here is are some maps that show cases the StringDateTime functoid. In this case the UTC date 2017-02-25T08:18:48.000Z is transformed to 25/02/2017 21:18


Note in the example above that the time is incremented by 13 hours because on the 25/2 NZ is on daylight saving and is UTC+13.

The code that does the work is shown below.

You can download the class file, bit map and resource file from here if you want to create the functoid yourself. Please see one of Sandro Pereira’s posts if you need any help to create it.

In summary this BizTalk functoid  gives consistency to the way dates are formatted and is easy to use. All you need to enter is the either a standard date format or a custom date format.