ReportedDate should definitely represent the date the entry was for.
You may be missing something in your code.
Another idea: Perhaps you're experiencing a time zone based shift of the value. ReportedDate is a date only field, so the time portion of it is 00:00. Though in general Clarizen API time values are UTC based, for date only fields time zone doesn't apply, so you shouldn't apply the local time zone on the returned value.
If you're uncertain about some other field type, the best way to figure out the field type is to use DescribeEntitiesMessage (and locate the field in the results' Fields collection).
Hope this helps,