Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Time
Search
Dirkjan Bussink
February 10, 2015
Programming
0
66
Time
A talk about how to handle time and timezones. Given at Twente.rb
Dirkjan Bussink
February 10, 2015
Tweet
Share
More Decks by Dirkjan Bussink
See All by Dirkjan Bussink
Managing a widely distributed team
dbussink
1
150
The tricky truth about parallel execution and modern hardware
dbussink
0
320
The future of Ruby is faster
dbussink
3
520
Security for dummies
dbussink
1
120
The myth of dynamic language performance
dbussink
3
410
Rubinius - Tales from the trenches @ Railsclub.ru 2012
dbussink
2
200
Rubinius - Tales from the trenches @ Baruco 2012
dbussink
1
240
Rubinius Eurucamp 2012 Workshop
dbussink
2
100
Rubinius Euruko 2012 Lightning talk
dbussink
2
220
Other Decks in Programming
See All in Programming
チーム力を高めるスクラム実践法:カンバン公開と課題攻略について - ニフティのスクラムトーク Vol. 2 - NIFTY Tech Talk #18
niftycorp
PRO
1
110
元気予報
suu_mire0726
0
860
PHP8.3の機能を振り返る / Review of PHP 8.3 features
seike460
PRO
1
110
甘い香りに誘われてVanilla Extractを1年間運用してみた
miyahkun
1
110
Folding Cheat Sheet #2
philipschwarz
PRO
0
110
品質とスピードを両立: TypeScriptの柔軟な型システムをバックエンドで活用する
kosui
8
2.2k
VSCodeでのDatabricks開発もお勧めしたい/I would also recommend Databricks development with VSCode.
kazumain
0
240
코틀린으로 멀티플랫폼 만들기
pangmoo
0
120
Rails と人魚の話/rails-and-mermaid
sanfrecce_osaka
0
100
はてなにおける CSS Modules、及び CSS Modules に足りないもの / CSS Modules in Hatena, and CSS Modules missing parts
mizdra
3
470
Netty Chicago Java User Group 2024-04-17
sullis
0
130
HUIT新歓2024「競技プログラミング、やってみませんか?」
slephy2784
1
250
Featured
See All Featured
What's new in Ruby 2.0
geeforr
337
31k
Atom: Resistance is Futile
akmur
258
25k
Debugging Ruby Performance
tmm1
70
11k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
321
20k
Put a Button on it: Removing Barriers to Going Fast.
kastner
58
3k
Side Projects
sachag
451
41k
Scaling GitHub
holman
457
140k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
115
18k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
1
1.3k
Principles of Awesome APIs and How to Build Them.
keavy
120
16k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
226
51k
Thoughts on Productivity
jonyablonski
57
3.8k
Transcript
Time Dirkjan Bussink! @dbussink
Time is hard
None
None
None
None
None
Basics
None
Timezones
http://momentjs.com/
http://momentjs.com/
Storing
UTC
Why?
2014-10-26 02:34
A bit more! complicated
Group! by date
None
Who’s date?
http://pellepim.bitbucket.org/jstz/
None
None
Calculations
None
Perspective
None
UTC loses data
UTC + offset
2014-08-19 16:12:50 +0200
Time as a feature
Calendars
None
None
DST
amsterdam = ActiveSupport::TimeZone["Europe/Amsterdam"] time = amsterdam.parse("2014-08-19 17:15") => Tue, 19
Aug 2014 17:15:00 CEST +02:00
sydney = ActiveSupport::TimeZone[“Australia/Sydney"] ! time => Tue, 19 Aug 2014
17:15:00 CEST +02:00 time.in_time_zone(sydney) => Wed, 20 Aug 2014 01:15:00 EST +10:00
later = time + 6.months => Thu, 19 Feb 2015
17:15:00 CET +01:00 ! later.in_time_zone(sydney) => Fri, 20 Feb 2015 03:15:00 EST +11:00
Our recurring meeting! just moved 2 hours!
UTC + offset! isn’t good enough
Time & time zone Europe/Amsterdam Tue, 19 Aug 2014 17:15:00
CEST +02:00
Time tracking
Check in & check out
125% 22:00 00:00 150% Break 150% 01:00 01:30 06:00
DST
125% 150% Break 150% 01:30 02:00 02:59 02:00 03:00
9 hours from 22:00 until 06:00
Very specific! storage format
Day!! ! ! ! ! ! ! 2014-10-26! Start!! !
! ! ! ! 79200!! ! ! End!! ! ! ! ! ! ! 108000! Duration!! ! 32400
Take away
Start with UTC
Be careful! with timezones
Make conscious! decisions