I used following functions to convert DateTime from/into string:
DATE_OBJ.ToString(DATE_FORMAT);
DateTime.ParseExact(Date_string,
You cannot do this from DateTime, as DateTime holds no TimeZone info.
This is close: string.Format("{0:s}", dt) will give 2012-03-20T14:18:25.
See: http://www.csharp-examples.net/string-format-datetime/
You could extend this to: string.Format("{0:s}.{0:fff}", dt), which will give 2012-03-20T14:18:25.000
But you better have a look at DateTimeOffset: DateTime vs DateTimeOffset
(Not advisable, but to fake it and still use DateTime: string.Format("{0:s}.{0:fff}+04:00", dt))