Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Goの日時書式の話
Search
株式会社イノベーション(エンジニア)
June 02, 2025
380
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Goの日時書式の話
Goの日時書式に付いての解説
株式会社イノベーション(エンジニア)
June 02, 2025
More Decks by 株式会社イノベーション(エンジニア)
See All by 株式会社イノベーション(エンジニア)
開発から事業側へ移って 見えたこと
innovationjp
0
8
Go 1.27 リリース解説 メモリ最適化・JSON v2・待望のジェネリックメソッド解説
innovationjp
0
12
MoQT フルスクラッチ実装
innovationjp
0
13
月18万行の コーディングを行った話
innovationjp
0
8.4k
アイデア枯渇から救った 1匹の猫の話
innovationjp
0
26
『問題解決』を読んでSkillにしてみた
innovationjp
0
360
社内でAIコンサルしたら "かなり良い成果"が出せた話
innovationjp
0
150
AWSのECSを分かりやすく 例えてみた
innovationjp
0
19
書店の入り口でわかる、いまの関心
innovationjp
0
34
Featured
See All Featured
Getting science done with accelerated Python computing platforms
jacobtomlinson
2
470
Leveraging Curiosity to Care for An Aging Population
cassininazir
1
490
Digital Projects Gone Horribly Wrong (And the UX Pros Who Still Save the Day) - Dean Schuster
uxyall
1
2.8k
The Mindset for Success: Future Career Progression
greggifford
PRO
0
490
A Soul's Torment
seathinner
7
3.6k
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
520
Game over? The fight for quality and originality in the time of robots
wayneb77
1
270
Building a A Zero-Code AI SEO Workflow
portentint
PRO
0
710
SEO for Brand Visibility & Recognition
aleyda
0
4.7k
Documentation Writing (for coders)
carmenintech
77
5.5k
brightonSEO & MeasureFest 2025 - Christian Goodrich - Winning strategies for Black Friday CRO & PPC
cargoodrich
3
820
How to Build an AI Search Optimization Roadmap - Criteria and Steps to Take #SEOIRL
aleyda
1
2.2k
Transcript
Goの日時書式の話 2025.05 開発定例LT 蜂谷
Goの日時書式って特殊ですよね 2006-01-02 15:04:05
Goの日時書式は批判されがち https://ytyaru.hatenablog.com/entry/2022/10/31/000000
こうなっている理由はちゃんとある アメリカの慣例(Jan 1st 12:34:56 とか)に倣って `月-日 時:分:秒 年` の形式で 先頭から1,2,3…と番号を付けている。
分は12時間表記が `3` で24時間表記は `15`
ただし年月日の並び順の方が世界的に広く使われている 世界的に `年月日` の並びの方が広く使われていることを Go言語開発者のRob Pikeが知らなかったのでこの並びになった。 この仕様は誤りだったとメーリングリストで語ったらしい。 後方互換維持のため Go 1.x
の間はこのまま
アルファベットで表す形式の方が他の言語には多い - PHP: Y-m-d H:i:s - MySQL: %Y-%m-%d %H:%i:%s -
C: %Y-%m-%d %H:%M:%S - PostgreSQL: YYYY-MM-DD HH24:MI:SS - JavaScript: YYYY-MM-DD HH:mm:ss - SQLServer: yyyy-MM-dd HH:mm:ss
同じような書式が多いので経験が増えるほど迷う - PHP: Y-m-d H:i:s - MySQL: %Y-%m-%d %H:%i:%s -
C: %Y-%m-%d %H:%M:%S - PostgreSQL: YYYY-MM-DD HH24:MI:SS - JavaScript: YYYY-MM-DD HH:mm:ss - SQLServer: yyyy-MM-dd HH:mm:ss %つけるんだっけ?
同じような書式が多いので経験が増えるほど迷う - PHP: Y-m-d H:i:s - MySQL: %Y-%m-%d %H:%i:%s -
C: %Y-%m-%d %H:%M:%S - PostgreSQL: YYYY-MM-DD HH24:MI:SS - JavaScript: YYYY-MM-DD HH:mm:ss - SQLServer: yyyy-MM-dd HH:mm:ss 月と分のmは大文字小文 字どっちだっけ?
同じような書式が多いので経験が増えるほど迷う - PHP: Y-m-d H:i:s - MySQL: %Y-%m-%d %H:%i:%s -
C: %Y-%m-%d %H:%M:%S - PostgreSQL: YYYY-MM-DD HH24:MI:SS - JavaScript: YYYY-MM-DD HH:mm:ss - SQLServer: yyyy-MM-dd HH:mm:ss 時は24ありだっけ?
同じような書式が多いので経験が増えるほど迷う - PHP: Y-m-d H:i:s - MySQL: %Y-%m-%d %H:%i:%s -
C: %Y-%m-%d %H:%M:%S - PostgreSQL: YYYY-MM-DD HH24:MI:SS - JavaScript: YYYY-MM-DD HH:mm:ss - SQLServer: yyyy-MM-dd HH:mm:ss 全体的に大文字小文字 どっちだっけ?
パターンが多いと辿り着くまで大変 - PHP: Y-m-d H:i:s - MySQL: %Y-%m-%d %H:%i:%s -
C: %Y-%m-%d %H:%M:%S - PostgreSQL: YYYY-MM-DD HH24:MI:SS - JavaScript: YYYY-MM-DD HH:mm:ss - SQLServer: yyyy-MM-dd HH:mm:ss 辿り着くまでに考えること 1. 年が4文字のパターン? 2. %つくパターン? 3. 時は24つく? 4. 分はiかmか?それともmi? 5. 大文字小文字どうだっけ?
パターンが多いと辿り着くまで大変 - PHP: Y-m-d H:i:s - MySQL: %Y-%m-%d %H:%i:%s -
C: %Y-%m-%d %H:%M:%S - PostgreSQL: YYYY-MM-DD HH24:MI:SS - JavaScript: YYYY-MM-DD HH:mm:ss - SQLServer: yyyy-MM-dd HH:mm:ss 辿り着くまでに考えること 1. 年が4文字のパターン? 2. %つくパターン? 3. 時は24つく? <- 全てのステップで?がつく 4. 分はiかmか?それともmi? 5. 大文字小文字どうだっけ?
パターンが多いと辿り着くまで大変 - PHP: Y-m-d H:i:s - MySQL: %Y-%m-%d %H:%i:%s -
C: %Y-%m-%d %H:%M:%S - PostgreSQL: YYYY-MM-DD HH24:MI:SS - JavaScript: YYYY-MM-DD HH:mm:ss - SQLServer: yyyy-MM-dd HH:mm:ss 辿り着くまでに考えること 1. 年が4文字のパターン? <- 実際はここの?で諦めてリファレンスをみる 2. %つくパターン? 3. 時は24つく? <- 全てのステップで?がつく 4. 分はiかmか?それともmi? 5. 大文字小文字どうだっけ?
パターンが多いと辿り着くまで大変 - PHP: Y-m-d H:i:s - MySQL: %Y-%m-%d %H:%i:%s -
C: %Y-%m-%d %H:%M:%S - PostgreSQL: YYYY-MM-DD HH24:MI:SS - JavaScript: YYYY-MM-DD HH:mm:ss - SQLServer: yyyy-MM-dd HH:mm:ss 辿り着くまでに考えること 1. 年が4文字のパターン? 2. %つくパターン? <- この辺で考えるのを諦めてリファレンスをみる 3. 時は24つく? <- 全てのステップで?がつく 4. 分はiかmか?それともmi? 5. 大文字小文字どうだっけ? よく使われる設計だから使いやすいわけではない 同じような設計が増えると微妙な違いが増える
Goの日時書式はルールを覚えれば迷わない 2006-01-02 15:04:05 辿り着くまでに考えること 1. 数字を並べればOK 2. 月日時分秒年 の順で1から6まで 3.
時分秒をゼロ埋めするなら0をつけて2桁にする 4. 年は4桁で2006固定でOK 5. 時は24時間表示なら午後3時の15
Goの日時書式はルールを覚えれば迷わない 2006-01-02 15:04:05 辿り着くまでに考えること 1. 数字を並べればOK 2. 月日時分秒年 の順で1から6まで 3.
ゼロ埋めするなら0をつけて2桁にする 4. 年は4桁で2006固定でOK 5. 時は24時間表示なら午後3時の15 ユニークかつルールが明確なので迷わない 万が一このパターンが増えてしまうと迷うようになる
標準ライブラリにいろんなパターンが定数定義されてます https://pkg.go.dev/time#pkg-constants
まとめ - Goの日時書式は一見変だけどちゃんと考えられているよ - よく使われるパターンは似たパターンが多いとむしろわかりづらくなる - 見慣れないからといって拒絶するのではなくなぜそうなのか調べると良い - 一貫した設計思想に基づいて実装ルールを徹底するのは認知負荷を下げる
おわり 以上です