I have had my share of problems working with datetime fields in CRM, and along the ways I have learned a few lessons:
– Stored as UTC in database
– Showed as Local for each user (setting) in web UI
– Retrieved as UTC (early-bound)
– Set as Local (early-bound)
Having a few more problems prompted me to look further and after a quick google session came across this article. Click here to read more.