$30 off During Our Annual Pro Sale. View Details »

How to Save Time

How to Save Time

This isn't a productivity talk. It's a survey of some idiosyncrasies related to persisting date/time values to a database.

Joel Clermont

November 07, 2018
Tweet

More Decks by Joel Clermont

Other Decks in Technology

Transcript


  1. How to Save Time
    Joel Clermont

    @jclermont

    View Slide

  2. Productivity

    View Slide

  3. ISO8601

    View Slide

  4. Date time values are tricky
    • Date math
    • Leap years/seconds
    • Daylight Saving Time
    • Time Zones
    • Many more . . .
    https://infiniteundo.com/post/25326999628/falsehoods-
    programmers-believe-about-time

    View Slide

  5. Approach 1
    Everything is local

    View Slide

  6. Everything is local
    2018-11-06T09:05:23

    View Slide

  7. Everything is local
    Pro: super easy, no thought/effort
    Con: What if you have users in a different time zone?

    View Slide

  8. Approach 2
    Local plus time zone offset

    View Slide

  9. Local plus offset
    2018-11-06T09:05:23-06:00

    View Slide

  10. Local plus offset
    Pro: can convert to other time zones
    Con: Not consistent, lots of tz values

    View Slide

  11. Approach 3
    Always store UTC

    View Slide

  12. Always store UTC
    2018-11-06T15:05:23Z
    2018-11-06T15:05:23+00:00

    View Slide

  13. Always store UTC
    Pro: able to convert, consistent
    Con: ?? Is there an unsolved problem?

    View Slide

  14. Problem
    Politicians can break your code

    View Slide

  15. View Slide

  16. What if the time zone
    rules change?

    View Slide

  17. https://www.timeanddate.com/news/time/

    View Slide

  18. https://www.timeanddate.com/news/time/

    View Slide

  19. Approach 4
    Future dates as wall time + tz name

    View Slide

  20. Future as wall + tz name
    2019-11-06T12:00:00
    America/Sao_Paulo

    View Slide

  21. Future as wall + tz name
    Pro: TZ rules can change
    Con: New time zones? God help you

    View Slide

  22. Questions?
    @jclermont

    View Slide

  23. Thank you!
    @jclermont


    View Slide