Microsoft Dynamics CRM Date and Time can be very confusing and challenging to work with, especially in scheduling applications. We have solved several challenges with DateTimes and time zones in both CRM Forms and custom portals.
A few CRM Date and Time truths that we have learned along the way:
- CRM DateTime always comes with time component. There is a setting in creating a DateTime field that defines date only, but all that does is default the time to midnight local time
- DateTime is saved in database as UTC time
- DateTime in CRM UI is always shown based on user’s local time zone. This is true even if UI is only showing the date component. This leads to following effect:
- If user in CST enters contact’s birthdate as 2/2/1980, this is saved as 2/2/1980 05:00 in DB
- If user in PST views the contact record, he/she will see the birthdate as 2/1/1980 (because local time for the user will be 2/1/1980 22:00)
- DateTime retrieved through CRM Web Services is always UTC time
- DateTime set through CRM Web Services is user’s local time zone by default
- Note that extra care must be taken to understand whether the call is done with the calling user or a service user
- DateTime set through CRM Web Services can be defined to be UTC instead
- DateTime queried directly from SQL table or base view returns UTC
- DateTime queried from filtered view returns users local time
Just a few fun tidbits from your friendly CRM Experts at PowerObjects.