Hi. I am displaying the date time field on UI which is defaulted to previous day

Hi. I am displaying the date time field on UI which is defaulted to previous day 00:00. But due to BST change my date time is getting displayed 1 hour ahead 01:00. I can wrap my datetime in gmt() function and get the desired result but this will force me to change it again when BST ends. Is there a better way to handle this?

Code Snippet:
Displaying date time using - todatetime(today() - 1) - results as dd/mm/yyyy 00:00 (dd/mm/yyyy 01:00 after daylight saving)
Fixed this using gmt () - gmt(todatetime(today() - 1)) - results as dd/mm/yyyy 00:00 ( do I have to change the code when daylight savings ends?)

OriginalPostID-203712

OriginalPostID-203712

  Discussion posts and replies are publicly visible

Parents
  • As per my knowledge - If you use gmt() function, you don't have to modify your code when daylight saving ends.

    Below is the explanation -
    What you see on the front end in date and date time fields depends on user time zone. Right way to think about it is to do calculations in GMT and then apply user time zone over the calculations. As the time zone can be different for different users, based on user time zone they will see the difference in displayed date time values.

    In your current scenario, when you try to display datetime(today()-1), it calculates to 31/03/2016 00:00:00 GMT considering today as 01/04/2016.
    Now, if you login with an user in BST time zone, you will see 'datetime(today()-1) in GMT' changes to '31/03/2016 01:00:00 BST' by adding 1 hour time zone offset to GMT time.
    For users in EDT time zone, they will see it '30/03/2016 20:00:00 EDT',
    For users in IST time zone, they will see it '31/03/2016 05:30:00 IST'

    When we apply GMT function it removes the time zone offset and displays value in GMT.
    So, during summers when BST is used, gmt('31/03/2016 01:00:00 BST') is changed to '31/03/2016 00:00:00 GMT'
    During winters when GMT is used, gmt('31/03/2016 00:00:00 GMT') remains same as '31/03/2016 00:00:00 GMT'
Reply
  • As per my knowledge - If you use gmt() function, you don't have to modify your code when daylight saving ends.

    Below is the explanation -
    What you see on the front end in date and date time fields depends on user time zone. Right way to think about it is to do calculations in GMT and then apply user time zone over the calculations. As the time zone can be different for different users, based on user time zone they will see the difference in displayed date time values.

    In your current scenario, when you try to display datetime(today()-1), it calculates to 31/03/2016 00:00:00 GMT considering today as 01/04/2016.
    Now, if you login with an user in BST time zone, you will see 'datetime(today()-1) in GMT' changes to '31/03/2016 01:00:00 BST' by adding 1 hour time zone offset to GMT time.
    For users in EDT time zone, they will see it '30/03/2016 20:00:00 EDT',
    For users in IST time zone, they will see it '31/03/2016 05:30:00 IST'

    When we apply GMT function it removes the time zone offset and displays value in GMT.
    So, during summers when BST is used, gmt('31/03/2016 01:00:00 BST') is changed to '31/03/2016 00:00:00 GMT'
    During winters when GMT is used, gmt('31/03/2016 00:00:00 GMT') remains same as '31/03/2016 00:00:00 GMT'
Children
No Data