Simple Setting

TimeZone Setting
  • To display data exactly as it is in the database set TimeZone to UTC
  • Else set the timezone to your timezone, to see local timestamps

More detail below.

Store all data in UTC

It is highly recommended to store all data in UTC. UTC makes working on data amongst a distributed team much easier. It also helps prevent Daylight Savings Times (DST) complications:

  • DST is the practice of advancing clocks during warmer months so that darkness falls at a later clock time.
  • DST shift in time, happens at different dates in different countries.
  • Due to the time shift, either data will overlap or there will be a gap on graphs.
  • Converting from one timezone to another is complicated as it means accounting for DST and two possible shifts at once.

What Pulse Does

You have the below table stored in the database as UTC:

DateTimeDateTimeValue
2025-01-0100:002025-01-01T00:000
2025-01-0100:012025-01-01T00:011

To display it in the users local time, we want to convert it to New York time which is currently GMT - 4:

  • If we convert the date column, naively it would be 2025-01-01T00:00 -> 2024-12-31T20:00, i.e. it has gone back to the previous day. This makes no sense in a table.
  • Assuming we are not going to convert just dates, We can't convert just time else they wouldn't agree.
  • Therefore only converting full DateTime makes sense and is useful to users that want to see local time.

This means the table in New York Timezone becomes:

DateTimeDateTimeValue
2025-01-0100:002024-12-31T20:000
2025-01-0100:012024-12-31T20:001

The choice of local timezone was made as that what is least confusing to most people. You can configure Pulse to display UTC or any other timezone.

Change TimeZone

TimeZone Setting

Workarounds

If you do not want Pulse to change your dates and times in any way. The simplest solution may be to convert the column to a string. Pulse will then never modify the contents. Time-series charts will not work however Bar/Line/Area charts will draw fine however the x-axis will not be proportional to time, it will use each row as a category.

Oddities and Problems

  • Querying for date=2022.01.02
    If you make a query to the database in UTC for one single date, the data displayed on return may span multiple days due to being shifted to your timezone
  • Using Forms populated from SQL queries
    If you populate forms using SQL queries to retrieve datetimes, those datetimes will be converted to our local timezone. When you then populate a variable and that variable is used in a query, it will be sent with your timezone currently.