タイムゾーンの問題
花見といえば、花粉症が辛すぎて全然楽しめない類と。
花見といえば、あんまり思い出のないフレットです。
花見といえば、上野公園のステイブの3人でお送りします、TimeTreeラジオ。
TimeTreeラジオは、カレンダーシェアアプリ、TimeTreeを運営する私たちメンバーが、
普段の仕事に関係することも、そうでないことも、大体15分くらいで話し切るインターネットラジオ番組です。
よろしくお願いします。
よろしくお願いします。
花粉症の類。もう花見なんて最大の敵じゃないですか。
そうなんですよね。花見で見上がるのは好きなんですけれど。
ここね、時期ちょっとずらしてほしいんですよね。
時期ずらしたらでも、酒だがなくなっちゃう。
一番つらい時期に。
そうなんですよね。
対策とかをして、じゃあ望むんですか、お花見は今まで。
もう苦しみながら望むしかないです。
満増な花見ですね。
そしてフレットは、思い出がない。お花見の思い出ないですか。
行ったことはあるよ、もちろん。
花見に。
でも、昔ギター持って花見会場で歌ってたらすごい儲かったとかありますね。
流しってことですね。
流し。お金。
あるじゃないですか。それはいくつぐらいの時にどちらで。
20歳ぐらいの時に福岡でかな。
すごいな。知らない人の前で歌ってってことですね。
サマータイムの扱い
そうです。
めちゃくちゃいい話。
いい話。
なんかあんまりフレットから想像のつかない社交性ですね。
知らない人だと旅先で常説になったりするじゃん。旅先。
はいはいはい。
確かに確かに。
いいです。
今日のテーマは、ちょっとですね久しぶりかもしれないこういう話題は、開発のお話なんですけど、
グローバルで今展開しているカレンダーサービスのタイムツリーがですね、
実は悩ませられ続けている問題なのかな、課題っていうのでタイムゾーンっていうのがありまして、
そのタイムゾーンってあんまり聞き慣れない言葉かもしれないんですけど、
そのことについてちょっと今日は紹介しつつお話ししていけたらなと思ってます。
まずタイムゾーンって何ですかの話をルイに紹介してもらってもいいですか。
タイムゾーンが何ですかって結構一言で話し切るの難しいんですけど、
タイムゾーンは要するにその地域が今何時なのかっていうのを決めるルールですね。
で例えばその朝7時、ごめんなさい、7時は朝だったりとか12時は昼だったりとか、
19時は夜っていう時間で朝昼夜とかっていう感覚が決まってると思うんですよ。
それが地球上のどこ行ってもだいたい同じその感覚になるっていう風なのが、
定められてるタイムゾーンってルールですね。
日本だと標準時間、標準時間のイギリスのグリーン時点問題のことなんですけど、
あそこから9時間早く時間を迎えるっていう風な設定になってますね。
世界中の人が同じ時間の感覚で物事のやり取りができるようにするためのフォーマットってことですね。
そうですね。
なるほど。
日付変更線とか社会で習ったよね。
そうですね、日付変更線そこの太平洋の区切りのところにありますよね。
今思い出しました。
あそこよりも西側にある、あそこを中心にして西側にあるところから時間が始まって、
そっちの方が早い。
なるほど。
そこのすぐに東側が一番遅いっていう風な位置ですね。
地域ごとの時間差
今日付変更線っていうワードももう25年ぶりぐらいに聞きました。
そうですね。
そういえばそんな概念はあまり使わないですね。
なんかこう結構社内のエンジニアとかもタイムゾーンに関していろいろコメントをするメンバーも多くてですね。
例えばiOSエンジニアのスタッドとか、日々タイムゾーンに苦しめられている我々としては地球平面説を推していきたいのに、
陰謀論の一番上になってしまっている。
これルイからするとわかるわーって感じですか?
はい。まずタイムゾーンに苦しめられているので、世界中のどこ行っても朝は同じ時間で朝を迎えて、同じ時間の夜を迎えてほしいんですよ。
なるほど。どの国だろうと。
そうですね。それでフラットワースっていう地球平面説っていうのがあるんですけど、これに入る気持ちはありますね。
それを本気で信じている人たちがいて陰謀論として扱われているって感じです。
そんなに大変なのか。なんかこう、開発としてどんな点が大変なのかって、開発の詳しい話とかを多分しても結構詳細になっちゃうと思うんですけど。
具体的にどういう難しさがあるんですか?
そうですね。地域によって時間が違うんですよ。
たとえばよくあるのは日本で、日本は9時間早いんですけど、標準よりも。
時間帯によって機能になっちゃうとか、そういう問題が起きちゃったりするんですよね。
なので、たとえば午前中朝9時ぐらいまで前日判定になっちゃうとか。
ああ、そういうことか。
時間がずれちゃうっていう風な問題が起きやすいんですよね。うまくタイムゾーンを扱えないと。
なるほど。地域によってそういう時間判定のバグが出ちゃう。
そういう感じです。
なるほどね。
あとよくあるのはサマータイム。
出てきたですね。
サマータイムって英語だとDST、Daylight Saving Timeって言うんですけど、
日光を有効活用しようという考え方なんですよね。
さっきの朝が何時っていうのを、夏の時間って日が昇ってる時間が早かったりすると思うんで、
ずらすっていう風な、エネルギーを効率的に使えるようにしようっていう風なやつなんですけど、
何が起きるかっていうと、それを導入している地域では一定の季節では1時間、時間が早くなったとか、
そういうのが起きるんですよね。
なので、先ほどのタイムゾーンと同様にサマータイムをちゃんと扱えないと、
同じような、この季節だけおかしくなったんだけどみたいな問題が発生してしまう。
なるほどね。サマータイムについても今初めて正しく理解した。
僕、ただの夏休み的な感じかと思ってた。
最近社内で話題になったのは、サマータイムが廃止というか、
高級的に今後サマータイムが標準になるみたいな。
年中サマータイム。
っていうことなんですかね。
でも、サマータイムとサマータイムじゃないときとの区別はなくなるということです。
そうですね。
これまでは今日からサマータイムですって言ったら、みんな時計動かしてたのかな。
そうだと思いますよ、おそらくその地域の人たちは。
もちろんデジタルだったらそこ切り替わるんですけれど。
サマータイムの話で言うと、アリゾナ州とかからのお問い合わせが多いんですよ。
なんでかっていうと、アリゾナ州はサマータイム使ってる地域と使ってない地域がすごい色々入り混じってて。
そうなんで、自分の家はギリギリサマータイムの範囲外とかそういうのもありまして。
なので判定が狂っちゃうんですよね。
なのでサマータイムのはずがサマータイムになってないとか、急にサマータイムになっちゃったとか、
そういう問い合わせが来たりとか。
そのあたりがサマータイムの強さですね。
タイムツリーだと端末の国情報とかで。
タイムゾーンの問題
基本的には端末にタイムゾーンの設定値があって、それで判断するという感じですね。
内部的にももちろんタイムゾーンというのが持っていて。
例えばタイムツリーだと国またいで使っている方とかもいたりして、
国またいで共有している方ですね。
そういうシーンとかはお互いのタイムゾーンが入り混じったデータが投稿されたりとかもしますね。
今平気してるんだっけ。日本ではこの時間、アメリカでは、ニューヨークではこの時間。確かそうだよね。
確かそうだったはず。
あとは場所を移動して、普段使っているタイムゾーンと変わっている時とかにもアナウンス出したりとかしてますね。
タイムゾーン切り替えますか、みたいな。
そうですね、はい。タイムゾーン切り替えました、みたいな。
大変な問題ですね、これは。
はい、なので地球平面にしてほしいです、本当に。
でももうカレンダーサービスをやっている以上、いつまでもつきまとう宿命ってことですね。
そうですね、これはカレンダーサービスでは絶対に避けられないと思います。
タイムゾーンの実装方法
なんかそのことについても、IOSエンジニアのシオンが過去につぶやいていて、
サマータイムなくなるんだ、やったーって社内が鳴っているところを彼が冷静に、
仮にサマータイムが明日から全世界で一斉に廃止されたとしても、
過去にサマータイムが実施されたという事実は覆らないので、
過去の日付を扱う限りサマータイムには向き合い続けなければならない。
変わらず正しく実装するしかない強いメッセージを。
でもその通りってことですね。
その通りです。その通りなんですよね。
例えば日本もサマータイム導入していたことがあって、
1948年くらいかな、確か。
3、4年くらいやってたと思うんですけど、
例えばそのぐらいの時期の予定作るとサマータイム考慮しなきゃいけないんですよ。
やばそう。
それと同じように、ここ最近の去年のとか廃止されたとしても、
サマータイムを考慮し続けなきゃいけないっていう。
そんなタイムツリーでやれている工夫とか、
開発の工夫ってどんなところがあるんですか?
紹介できそうなもので言うと。
難しいんですよね、さっき。
話しましたけど。
かなり細かい話になっちゃいました。
かなり細かい話になっちゃいましたね。
シンプルにタイムゾーンって何なのかっていうのをちゃんとみんな理解しなきゃいけない、まず。
なるほど。
あとは独自で扱わないというか、
ちゃんと正しくタイムゾーンを使ってくれているシステムを使うとか、
あとは世界中で一番標準ではないんですけれど、
一番よく使われているタイムゾーンの規格があるんですね。
それをちゃんと使うとか、
タイムゾーンデータベースっていうのがあるんですけれど、
それにちゃんと準拠するとか、
そういう感じですかね。
なるほど。
至極真っ当なことしかでもやっていないけど、一番大事なことって感じです。
そうです。
それでもバンバンタイムゾーンに関連する問題って出てくるので。
これでも同じようなスケジュール管理とかの開発をしている方だったら、
うなずきまくってるかもしれないですね。
そうですね。
今手元でタイムツリーでタイムゾーンを変えてみたけど、
予定を登録した地点、日本の時間表記と、
今ニューヨークに変えてみたんだけど、ニューヨーク現地での時間とか、
両方並んで表示されるような。
タイムツリーはそんな風に見せ方としてはしてるね。
そうですね。
なるほど。
それってどういう仕組みなんだ?
今いる場所とアプリで設定したタイムゾーンと別々に表示してくれる?
投稿した予定の中に実はタイムゾーンが入ってるんですよ。
はい。
なので、自分が今いるところと一緒だったらそのまま表示するし、
違えばどこで入れたかとかが関連してくるので、
例えば日本で8時っていう風に思って旅行行ったら、
連れちゃったとかってあるので、
そういうことが起きないように、
日本ではこの時間で設定してあるとかっていうのが見えるっていう感じですね。
なるほど、本当だ。ごめんなさい、これを知らなかった。
タイムゾーンについてたかだか10分くらい考えたら頭が痛くなってました。
すごい。ありがとうございます。
ちょっと変わりでしたけど、カレンダー開発とタイムゾーンの難しさについて、
簡単にいるから紹介してもらいました。
今日はこんなところで、ありがとうございます。
ありがとうございました。
ありがとうございました。