How should timestamps be formatted for HubSpot's APIs?

HubSpot API endpoints accept UNIX formatted timestamps in milliseconds. HubSpot stores the timestamps internally as UTC time, and any time and date that appear in the portal will be displayed based on the Time Zone settings in the Reports > Reports Settings. Most scripting languages have built-in functions or existing libraries that handle time conversion, but you must ensure that your timestamp values are in the correct UNIX millisecond format, before making requests to HubSpot APIs. 

Example: 1427997766000 translates to April 2nd, 2015, 2:02:46 PM EDT (Eastern Daylight Saving Time) or 02 Apr 2015 18:02:46 UTC.

Date/Datetime properties in HubSpot CRM

HubSpot has two types of CRM object properties for storing times, date and datetime.  Date picker properties created in HubSpot in would be date properties, so would store only the date and not the time.

Date properties will only store the date, and must be set to midnight UTC for the date you want.  For example, May 1 2015 would be 1430438400000 (01 May 2015 00:00:00 UTC). If you try to set a value that is not midnight UTC, you will receive an error. In HubSpot, date properties always display the specific date they are set to, regardless of the time zone setting of the portal or the user.

Datetime properties can store any time, so any valid millisecond timestamp would be accepted.  In HubSpot, datetime properties are displayed based on the time zone of the user viewing the record, so the value will be converted to the local time zone of the user. The only way to create a datetime property is by using the APIs, as any date picker property created in HubSpot is created as a date property. If your integration needs to store specific times, we'd recommend creating custom datetime properties using the property APIs for whichever CRM objects your integration works with.