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
99
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
170
The tricky truth about parallel execution and modern hardware
dbussink
0
340
The future of Ruby is faster
dbussink
3
530
Security for dummies
dbussink
1
140
The myth of dynamic language performance
dbussink
3
440
Rubinius - Tales from the trenches @ Railsclub.ru 2012
dbussink
2
210
Rubinius - Tales from the trenches @ Baruco 2012
dbussink
1
260
Rubinius Eurucamp 2012 Workshop
dbussink
2
110
Rubinius Euruko 2012 Lightning talk
dbussink
2
240
Other Decks in Programming
See All in Programming
地域ITコミュニティの活性化とAWSに移行してみた話
yuukis
0
230
スモールスタートで始めるためのLambda×モノリス
akihisaikeda
2
180
タイムゾーンの奥地は思ったよりも闇深いかもしれない
suguruooki
1
570
S3静的ホスティング+Next.js静的エクスポート で格安webアプリ構築
iharuoru
0
220
State of Namespace
tagomoris
4
760
AIコーディングワークフローの試行 〜AIエージェント×ワークフローでの自動化を目指して〜
rkaga
2
3.4k
Vibe Codingをせずに Clineを使っている
watany
17
6.1k
メモリウォールを超えて:キャッシュメモリ技術の進歩
kawayu
0
1.9k
Develop Faster With FrankenPHP
dunglas
2
3.2k
マルチアカウント環境での、そこまでがんばらない RI/SP 運用設計
wa6sn
0
710
DataStoreをテストする
mkeeda
0
280
AI時代の開発者評価について
ayumuu
0
110
Featured
See All Featured
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
23
2.6k
RailsConf 2023
tenderlove
30
1.1k
Statistics for Hackers
jakevdp
798
220k
The Straight Up "How To Draw Better" Workshop
denniskardys
232
140k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
34
2.9k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
47
2.5k
What’s in a name? Adding method to the madness
productmarketing
PRO
22
3.4k
The World Runs on Bad Software
bkeepers
PRO
67
11k
Into the Great Unknown - MozCon
thekraken
37
1.7k
A better future with KSS
kneath
239
17k
A designer walks into a library…
pauljervisheath
205
24k
GraphQLの誤解/rethinking-graphql
sonatard
71
10k
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