.NET Framework における時差情報(サマータイム)の取り扱い – とあるコンサルタントのつぶやき

実は先日、8/1 に社内で異動しまして、18 年間続けてきたコンサルタントからクラウドソリューションアーキテクトにロールチェンジしました。さてこの blog もタイトルを変えるべきかどうなのか……とかまったり考えていたら、ここ数日、びっくりするような話題が飛び込んできました。 「サマータイム導入はコンピュータシ...

記事へジャンプ

みんなの反応

はてなブックマークでの反応
1nakama00@hatena 2018/08/11 05:05
巷で話題のサマータイム(夏時間)がどのようなものかをまとめた資料です。10年以上前にまとめたものなのですが、おそらく参考になると思うので引っ張り出してみました。参考になれば幸いです。
2yakouhai@hatena 2018/08/11 09:47
“① Windows OS 上では、夏時間はタイムゾーンの変更として取り扱われる (p.10)”
3gabill@hatena 2018/08/11 09:48
型変更しなきゃダメか。外部と連動するシステムではタイミングはからないといけないし大変そう。
4monochrome_K2@hatena 2018/08/11 09:55
今回の与党のやり方は邪道でしかないけど今後のシステムはグローバルを意識してサマータイム対応を要件に入れるべきなのかなと思う
5soundkenjine@hatena 2018/08/11 10:01
技術者も設計者も誰もサマータイムに慣れてない ここが一番ネック
6mohno@hatena 2018/08/11 10:18
「実は先日、8/1 に社内で異動しまして、18 年間続けてきたコンサルタントからクラウドソリューションアーキテクトにロールチェンジしました」←おお。「日本の開発の実情を知る自分としてはかなりぞっとします」
7ba_shun@hatena 2018/08/11 10:21
良い文明
8yamuchagold@hatena 2018/08/11 10:25
マイクロソフトの中の人も、今からじゃあ無茶すぎるとお墨付き(笑)
9ksugimori@hatena 2018/08/11 10:39
“「ある瞬間」(日時)をどのように解釈して表示するのかは、カルチャによって変化する” なるへそ。あまり考えたことなかったけどたしかに。
10deeske@hatena 2018/08/11 10:52
どちらかというと、非IT企業の情シス担当者が、どれだけ自社のシステムに目を通せているかが試されると思う。本当に導入が決まったら、技術者のリソースの奪い合いになる。SIerに丸投げじゃもう無理だよ。
11fops@hatena 2018/08/11 10:53
「DateTime 型で加減算処理を行う場合には、必ず UTC を介して計算する必要があります。(ちなみにこの問題に対応するために導入されたのが DateTimeOffset 型です。)」
12tick2tack@hatena 2018/08/11 11:10
“Windows OS 上では、夏時間はタイムゾーンの変更として取り扱われる” / UTCを介した計算はDateTimeでなくDateTimeOffset型
13sonzinc@hatena 2018/08/11 11:21
"正直なところ、今の状況で夏時間が導入された場合のことを考えると、日本の開発の実情を知る自分としてはかなりぞっとします。" 私もぞっとします
14skam666@hatena 2018/08/11 11:22
“日本国内の場合、長らく単一のタイムゾーンしかなかったため、タイムゾーンを考慮した形で設計・実装・テストされているシステムは非常に少ないでしょう”
15sny22015@hatena 2018/08/11 11:33
なるほど
16lenore@hatena 2018/08/11 11:40
システムがUTCで日時を扱い、既存データも変換しファイル連携も全てUTCベース(標準時と時差)に統一し、業務的な考慮を取り入れ……。ああ。/ 法律もUTCベースで書き換えると重複する日時や失われる日時がなくなるね
17lalupin4@hatena 2018/08/11 11:43
おおう。『開発技術大全』シリーズは今でも俺の宝物ですわ。
18doncot@hatena 2018/08/11 11:46
これを気にみんなUTCベースにすればいいと思う。
19jtw@hatena 2018/08/11 11:48
みずほ統合に流れていたエンジニアを次に流し込む施策で実施している可能性がワンチャン。
20NOV1975@hatena 2018/08/11 11:58
UTCベースにするのは大前提として、実時間で処理し続けるのか、見た目の時間に合わせるのか(電車とかはこっちよね)の業務仕様を決めて取り組む必要あるし、過去データの取り扱い方も決めなければならないし。
21STARFLEET@hatena 2018/08/11 12:04
こういう情報が出てくるといいよね。
22yamadadadada2@hatena 2018/08/11 12:06
こういう話を前提に議論する知能がサマータイム推進派な老人の方々にあるのか、という
23ttysumi@hatena 2018/08/11 12:15
UTC、タイムゾーン、カルチャ。OSでの扱い。カルチャは知らなかった。他のシステムではどうだろう。おそらくは日本時間単一でしかないだろう。テレビなどとうなるか。
24rryu@hatena 2018/08/11 12:18
結局、システムはローカルタイムとUTCの変換機能を提供してくれるだけで、アプリケーション側で責任を持って実装しなければならないから、手放しで対応できる訳でもないんだよなあ。
25ulul@hatena 2018/08/11 12:18
DateTimeOffsetを使える環境でDateTimeを使うべき積極的理由は無いと言って良いことを啓蒙してゆきたいよね。(脱線)
26diveintounlimit@hatena 2018/08/11 12:21
“(サマータイム導入は)いやもう絶対に不可能だろう、と私も思いました”はい(´・ω・`)
27itsumonotakumi@hatena 2018/08/11 12:28
各社で本気で考えていかないと行けないッスな。一銭も利益が出ないけど。。。
28s_tsukiyama@hatena 2018/08/11 12:33
Windows UpdateでJDT(日本夏時間)が追加された時、過去のデータの時間表示はどうなるのか、私、気になります! / 「8月だからJDT表示」か「18年8月はJSTで表示」か。
29level@hatena 2018/08/11 12:48
「夏時間はタイムゾーンの変更として取り扱われる」「時刻情報は全部UTCに置き換える」これはわかりやすい資料。内部設計はそれでよいとして、外部IFがそうなっていないときは、、、頭痛いな
30onim@hatena 2018/08/11 13:00
サマータイムするには、まず人脈♪
31hitac@hatena 2018/08/11 13:49
タイムゾーン関連なんかは勉強してればいろいろと出てくるしどういう所に絡むかはわかってるわけだけど、実際のアプリケーションで対応を想定した所なんか見たことがないわけで、まあ、今からじゃ無理だよ。
32funnnon@hatena 2018/08/11 13:56
内部的にUTCで扱っても夏時間に直すときにどれだけずらすかなんて実装してないでしょ。内部処理はいいとして、表示するときに+9以外で扱ってるソフトウェアなんてあるのかねえ/おかしいという主張は分かるが…現実は…
33numpad0@hatena 2018/08/11 14:35
PCは楽でいいよな
34srng@hatena 2018/08/11 14:55
国内や行動圏内に時差がありそもそも昔からサマータイムがある国々のようにはいかないよなあ
35bottomzlife@hatena 2018/08/11 14:57
id:funnnon 言いたいことはわかるけど、さすがにそこでハードコードで+09:00してしまうのはプログラムがおかしい。TZを取得したいタイムゾーン/夏時間に合わせたうえでlocaltimeに落とすのでは
36mexxx@hatena 2018/08/11 15:09
なんかサマータイムが導入されるとしてもバグることは社会全体が認識してるから、これはこれで問題ないように思うわ。
37denilava@hatena 2018/08/11 15:15
時刻計算を間違ったとして何が問題かと思う人も多いが認証鍵は有効期限を持っていて計算を間違うと正しい時刻に期限切れにならなかったりあるいは使えなかったりするしその時差を利用してハッキングも行われる。
38renos@hatena 2018/08/11 15:29
ぼくの中の非実在系妄想営業が「サマータイム改修で案件とれそう」ってつぶやいてる(非実在です(非実在です
39T_Tachibana@hatena 2018/08/11 15:31
“Windows OS 上では、夏時間はタイムゾーンの変更として取り扱われる ”
40reachout@hatena 2018/08/11 15:33
うるせぇ!こっちは汎用機のお守りしてんだよ!(魂の叫び
41tettekete37564@hatena 2018/08/11 15:55
そうそう、そもそも参照すべきタイムゾーンの定義が各OSなどのロケール設定にないのでその辺の標準仕様の決定からなんだよな。2年なんて絶対無理。
42tea2ka@hatena 2018/08/11 15:56
なるほど。これって、DBなんか特に嫌な感じになりそうだな。
43boobook@hatena 2018/08/11 16:30
サマータイム導入が政府決定されてもみんなで無視すればいいんです
44ledsun@hatena 2018/08/11 16:51
夏時間はタイムゾーンなのか。すると、システム管理者は、ある日、全管理端末に、ActiveDirectoryか何かで、夏時間のタイムゾーンを流しこむのかな?
45uunfo@hatena 2018/08/11 16:52
例えばいま日本時間2020年8月1日12:00に公開予約しているデータがあるとして、意図してるのが12:00 JSTなのか03:00 UTCなのかを少なくともシステムごとに、場合によっては値ごとに判断しなくてはならない
46toya@hatena 2018/08/11 17:06
「日本国内の場合、長らく単一のタイムゾーンしかなかったため、タイムゾーンを考慮した形で設計・実装・テストされているシステムは非常に少ないでしょう」
47lichten@hatena 2018/08/11 17:16
ジブン、データベースの中に文字列でYYYY-MM-DDって持ってる地獄のような設計に巻き込まれた経験があるんだがそれに比べると大分まとも・・・ってそういう問題じゃないですねそうですね。でもOracleの時刻計算もヤバソー
48sig_zone@hatena 2018/08/11 17:27
システム改修の検討/調査/実施で費用が1兆行ってしまいそうだなぁ。青い銀行で解き放たれたSEたちは夏時間対応に追われるのかな。
49MacRocco@hatena 2018/08/11 17:38
身もふたもないけど、運用で対応するっていうにが一番現実的ylね
50couchcap@hatena 2018/08/11 17:41
オチとしては、法案可決しオリンピック関係機関はサマータイムにしたものの、その他官公庁はそのまま、JRもそのまま、企業の出勤時間もそのまま、誰も時計ずらさない、みたいになるんちゃうの。
51rinsuki@hatena 2018/08/11 18:17
“日本国内の場合、長らく単一のタイムゾーンしかなかったため、タイムゾーンを考慮した形で設計・実装・テストされているシステムは非常に少ないでしょう” ほんとこれ
52wapa@hatena 2018/08/11 18:25
2000年問題の時に内部で二桁で年数管理してたシステムがダメだったように、サマータイム対応では内部でUTC換算出来てないのはアウト、と。この辺の調査だけで2020年になっちやうだろ。そしてその調査費用は国が出すのか
53takuver4@hatena 2018/08/11 18:25
こういう中の人の正しい意見が政府に届きますように。
54ebibibi@hatena 2018/08/11 18:33
きちんと対応している一種類のフレームワークだけでこの話。アホみたいな実装してるシステムだって山ほどあるでしょうしね。
55yug1224@hatena 2018/08/11 18:35
サマータイムありえないと思うけれど、ケツ叩かれないと動かないのも事実だと思うので、これをチャンスとして文字列で日時取り扱ってるシステムをどうにかしたい
56gimonfu_usr@hatena 2018/08/11 18:46
( /2020東京五輪 )
57abracadabra321@hatena 2018/08/11 18:54
宮脇がこの記事パクるかどうか。
58bml@hatena 2018/08/11 19:30
オリンピック限定でバカンスを導入しよう。
59lazy-planet@hatena 2018/08/11 19:41
技術以前に、「オリンピックの競技を涼しい時間にやりたい」という問題の解決に「2時間早く始める」ではなく、日本全国のシステムや法律その他を変えようとする愚かさが分からない。コンサルはなにしてんの?
60MtAsuka@hatena 2018/08/11 19:42
このサマータイム騒動は、あらためて日付型の正しい扱いについて認識させてくれたことについてはありがたいと言える。
61qinmu@hatena 2018/08/11 20:08
良記事。
62garage-kid@hatena 2018/08/11 20:24
“2020 年に併せた夏時間の導入はあまりにも無茶すぎる、とエンジニア的な観点からは思いますが、とはいえ ... タイムゾーンや夏時間(サマータイム)を理解し、国際化対応アプリケーションを作ることは必須”
63kamataro@hatena 2018/08/11 20:31
"DateTime 型で加減算処理を行う場合には、必ず UTC を介して計算する必要があります。(ちなみにこの問題に対応するために導入されたのが DateTimeOffset 型です。)"
64kaiton@hatena 2018/08/11 20:44
先見の明としっかり残していて、共有する…素晴らしい
65sushi-K@hatena 2018/08/11 20:46
もう人間だけ時間の読み方を変えるだけにしようよ。ダブルシンクなんて皆慣れてるだろうし。
66mostaga@hatena 2018/08/11 21:35
70年近く地震が起きてない都市ででかい地震を起こすぐらいヤバイんだよなあ
67sakurasakuras@hatena 2018/08/11 21:53
“かれた時刻や電文に乗っ”
68iwasiman@hatena 2018/08/11 22:00
中の人による良記事。確かに.NETでもそれ以外でも、日本のシステム開発だとタイムゾーンまで考えてないことが多いような…
69infobloga@hatena 2018/08/11 22:03
ちなみに、RDBのDATETIME型は、アンパック10進数でローカルタイムそのまま持ってるからな / ただ、それは頑張ればどうにかなる。前も書いたが最大のカオスは予約時刻、閉店時刻など本質的にローカルタイムベースの時刻。
70kyukyunyorituryo@hatena 2018/08/11 22:22
やりたくないのがむっちゃ伝わってきた。
71fb001870@hatena 2018/08/11 22:35
コメント「非IT企業の情シス担当者うんぬん」ぎく。
72grizzly1@hatena 2018/08/11 22:39
「タイムゾーンや夏時間(サマータイム)を理解し、国際化対応アプリケーションを作る(海外でも動作するアプリを書く)ことは必須かと思います。」対応してこなかったツケが来るかも知れないとも言えるか。
73hdampty7@hatena 2018/08/11 22:50
昔やった衛星管理のシステムはタイムゾーンしっかり対応してたが、それ以外のシステムはタイムゾーンなんか気にしたことないな。要対応箇所の列挙するだけで非現実的だと思えるシステムばかり。
74zakkie@hatena 2018/08/11 23:47
時間型を128bitで定義するときにタイムゾーンを割り当てる発想がない。
75fatmonger@hatena 2018/08/12 00:00
みずほに割り当てられてる技術者がサマータイム扱えるとは思えんが。混乱に拍車かけるだけ。
76foobarchocobo@hatena 2018/08/12 00:04
ある時点のUTCの変更に合わせて7200秒調整するような仕様はUTCの履歴と差分を毎日取らないと実現できないハズだ。従って厳密には有効期限を判定する必要がある全てのシステムで改修が発生するんじゃないのかな
77t-tanaka@hatena 2018/08/12 00:24
そうだった。タイムゾーン情報だけじゃない。カルチャ情報の問題もあるんだった。タイムゾーン併記のI/Oが前提じゃないシステムはどうするんだろ?
78kana-kana_ceo@hatena 2018/08/12 00:56
ぜったいTOKYOオリンピックには間に合わないよ、という話です。
79Dragoonriders@hatena 2018/08/12 01:07
この国では時刻の扱いがいい加減なシステムが多くタイムゾーンと夏時間に関して全く同じ論理で実装されていないので、他システムの電文を受信したとき起きるエラーケースを半年やそこらでは潰せないので導入不可能。
80yamadar@hatena 2018/08/12 01:14
“とはいえこれからの IT エンジニアにとって、タイムゾーンや夏時間(サマータイム)を理解し、国際化対応アプリケーションを作る(海外でも動作するアプリを書く)ことは必須かと思います。”確かにそうだ。
81toris-birds@hatena 2018/08/12 01:17
ある程度昔から時間周りのプログラム書いてた人は時間(long値とかtime_t)にlocal timeを入れるって発想がそもそも無いんだよね…どの形で取り出すかって話だし(Windowsじゃないけど)。日時を文字で流してる場合は別として。
82azumi_s@hatena 2018/08/12 02:54
うん、だから無理だと言っているし、そもそも無駄でしかない。
83rrringress@hatena 2018/08/12 07:15
他にも数多ある大手 IT 企業もこんな形で早めに発信しておいたほうがよいのでは...
84okumuraa1@hatena 2018/08/12 12:17
"① Windows OS 上では、夏時間はタイムゾーンの変更として取り扱われる"とても勉強になりましたm(_ _)m
85zetamatta@hatena 2018/08/12 16:19
分かりやすいタイムゾーンとサマータイムの資料だ!>「(1)Windows上では、夏時間はタイムゾーンの変更として取り扱われる」「(2)DateTime型の加減算処理を行う際は、必ずUTCを介して行う」
86kana0355@hatena 2018/08/12 23:57
“日本国内の場合、長らく単一のタイムゾーンしかなかったため、タイムゾーンを考慮した形で設計・実装・テストされているシステムは非常に少ない”
87mino90@hatena 2018/08/13 22:24
こわい
88griefworker@hatena 2018/08/16 10:39
「Windows OS 上では、夏時間はタイムゾーンの変更として取り扱われる」
コメント内容の著作権は、投稿者に帰属します。
削除依頼、不適切コメントのご連絡はこちらにお願いいたします。
2018-08-10 23:51:02:1533912662:1534636983
comments powered by Disqus
※メールアドレスは公開されません。
人気の反応
0