Providers | Time Basis | Pattern |
---|---|---|
abbott_libreview freestyle_libre [1] | Floating Time [2] | YYYY-mm-ddTHH:mm:ss+00:00 The +00:00 TZ specifier should be ignored [3]. |
Everyone else | UTC | YYYY-mm-ddTHH:mm:ss+00:00 Always specified as +00:00 (UTC). |
freestyle_libre
specific:
Some older teams may see floating time data (Freestyle Libre) without the +00:00
TZ specifier,
as part of an earlier iteration of the feature. Contact Vital support if you wish to disable this
behaviour, or if you intend to adopt the Vital backend SDKs.+00:00
for OpenAPI 3.x interoperability. OAS 3
requires all timestamps to be RFC 3339, which in turn requires
TZ specifier to be mandatory.When processing data from Freestyle Libre, you should reinterpret literally
the date and time components as local date-time in the desired time zone. Do not convert from UTC/Zulu.null
indicates the time zone information is absent.Affinity | Time Basis | Time Zone |
---|---|---|
✅ | UTC | The data comes with time zone information. |
User Fallback, or UTC | UTC | We assume the data were captured in the User Fallback Time Zone. We fallback to UTC if the former is not set. |
User Fallback, or Absent | UTC | We assume the data were captured in the User Fallback Time Zone. Mark as no time zone (null ) if the former is not set. |
Inferred, or Absent | UTC | We infer the time zone from the data. Mark as no time zone (null ) if the inferrence fails. |
Absent | UTC | We do not know the exact time zone the recording took place in. Mark as no time zone (null ). |
Floating Time | Floating Time | We do not know the exact time zone the recording took place in. Mark as no time zone (null ). |
Provider | Activity Summary (Daily) | Session Summary (e.g. Sleep) | Timeseries Sample | Remarks |
---|---|---|---|---|
Freestyle Libre freestyle_libre | N/A | N/A | Floating Time | |
Abbott LibreView abbott_libreview | N/A | N/A | Floating Time | |
Fitbit fitbit | ✅ | ✅ | ✅ | ⚠️ Time Zones |
Garmin garmin | ✅ | ✅ | ✅ | |
Google Fit google_fit | User Fallback, or UTC | User Fallback, or Absent | Absent | |
Oura oura | ✅ | ✅ | ✅ | |
Peloton peloton | N/A | ✅ | N/A | |
Strava strava | N/A | ✅ | ✅ | |
Wahoo wahoo | N/A | Absent | N/A | |
WHOOP whoop_v2 | ✅ | ✅ | N/A | |
Zwift zwift | N/A | User Fallback, or Absent | N/A | |
Withings withings | ✅ | ✅ | ✅ | |
iHealth ihealth | N/A | ✅ | Absent | |
8Sleep eight_sleep | N/A | ✅ | ✅ | |
Hammerhead hammerhead | N/A | Inferred, or Absent | Inferred, or Absent | |
Dexcom dexcom_v3 | N/A | N/A | ✅ | |
Polar polar | ✅ | ✅ | ✅ | |
Kardia kardia | N/A | N/A | ✅ | |
Omron omron | ✅ | N/A | ✅ |
Provider | Activity Summary (Daily) | Session Summary | Timeseries Samples |
---|---|---|---|
Apple HealthKit apple_health_kit | ✅ | ✅ | ✅ |
Android Health Connect health_connect | ✅ | ✅ | ✅ |
Omron omron_ble | N/A | N/A | ✅ |
Contour contour_ble | N/A | N/A | ✅ |
Accu-Chek accuchek_ble | N/A | N/A | ✅ |
Freestyle Libre BLE freestyle_libre_ble | N/A | N/A | ✅ |
null
)2023/09/27 07:48 AM
, as they
are relative to their perception of local time.
If you need to convert it to UTC for persistence, you need to pick a time zone based on your understanding
of the user. Then you should reinterpret the date and time components literally in said time zone.
For example, we knew that this example user is based in America/New_York
. So we would interpret this data
point to be in 2023/09/27 07:48 AM ET
. We then finally convert this to UTC, resulting in 2023/09/27 11:48 AM UTC
.
manual
.