背景
リポ内に 「JVM・CI・DB は Asia/Tokyo」だが「API レスポンスだけ UTC(Z)に正規化」 という非対称な方針が混在しており、PR #135 で確定したコーディング規約 §12.1 と docs/architecture/infrastructure-plan.md の serverTimezone=UTC 記述が矛盾している(規約 §12.1 で「古い serverTimezone パラメータは使わない」と明記しているが、infra plan は古い書式)。
「日本圏前提・全層 JST 統一」を方針として確定したため、規約・infrastructure-plan・JVM 起動オプションをまとめて改訂する。
方針
1. 設計規約 §2.4 / コーディング規約 §12.1 を JST に反転
- API レスポンスの timestamp は JST(
+09:00) で返す(Z 表記は禁止)
application.yml の spring.jackson.time-zone: Asia/Tokyo を設定
spring.jackson.serialization.write-dates-as-timestamps: false は維持
- Java 側は
OffsetDateTime を ZoneOffset.of("+09:00") または ZoneId.of("Asia/Tokyo") で揃えてシリアライズ
Instant(UTC 軸)を直接シリアライズする用途は避け、JSON 表現上は必ず +09:00 に揃える
2. infrastructure-plan の ECS Task 定義を JST に統一
- 既存
DATASOURCE_URL から serverTimezone=UTC を撤去
- 規約 §12.1 と同じ書式に置換:
connectionTimeZone=SERVER&forceConnectionTimeZoneToSession=true
- ECS Task env に
TZ=Asia/Tokyo を追加(OS 経由で JVM デフォルト TZ を JST に)
- JVM 起動オプションに
-Duser.timezone=Asia/Tokyo を追加(JAVA_TOOL_OPTIONS 等で注入、二重強制)
- ベースイメージ / OS シンボリックリンク差異に依存しない
3. コーディング規約 §12.1 末尾に JVM TZ 強制への参照を追記
「JVM のデフォルト TZ は Asia/Tokyo 固定(infrastructure-plan.md 参照)」を 1 行追加。
スコープ(同一 PR で改訂する 3 ファイル)
派生(本 Issue 起票と同時に本文書き換え、別 PR 不要)
完了条件
関連
背景
リポ内に 「JVM・CI・DB は
Asia/Tokyo」だが「API レスポンスだけ UTC(Z)に正規化」 という非対称な方針が混在しており、PR #135 で確定したコーディング規約 §12.1 とdocs/architecture/infrastructure-plan.mdのserverTimezone=UTC記述が矛盾している(規約 §12.1 で「古いserverTimezoneパラメータは使わない」と明記しているが、infra plan は古い書式)。「日本圏前提・全層 JST 統一」を方針として確定したため、規約・infrastructure-plan・JVM 起動オプションをまとめて改訂する。
方針
1. 設計規約 §2.4 / コーディング規約 §12.1 を JST に反転
+09:00) で返す(Z表記は禁止)application.ymlのspring.jackson.time-zone: Asia/Tokyoを設定spring.jackson.serialization.write-dates-as-timestamps: falseは維持OffsetDateTimeをZoneOffset.of("+09:00")またはZoneId.of("Asia/Tokyo")で揃えてシリアライズInstant(UTC 軸)を直接シリアライズする用途は避け、JSON 表現上は必ず+09:00に揃える2. infrastructure-plan の ECS Task 定義を JST に統一
DATASOURCE_URLからserverTimezone=UTCを撤去connectionTimeZone=SERVER&forceConnectionTimeZoneToSession=trueTZ=Asia/Tokyoを追加(OS 経由で JVM デフォルト TZ を JST に)-Duser.timezone=Asia/Tokyoを追加(JAVA_TOOL_OPTIONS等で注入、二重強制)3. コーディング規約 §12.1 末尾に JVM TZ 強制への参照を追記
「JVM のデフォルト TZ は
Asia/Tokyo固定(infrastructure-plan.md参照)」を 1 行追加。スコープ(同一 PR で改訂する 3 ファイル)
docs/specs/設計規約.md(§2.4 反転)docs/specs/コーディング規約.md(§12.1 反転 + JVM TZ 参照追加)docs/architecture/infrastructure-plan.md(DATASOURCE_URL 修正 + ECS env / JVM オプション追記)派生(本 Issue 起票と同時に本文書き換え、別 PR 不要)
application.yml に connectionTimeZone / Jackson UTC 設定を反映→ タイトルから「UTC」を外しspring.jackson.time-zone: Asia/Tokyo前提に@PrePersist/@PreUpdate で LocalDateTime.now() をシステムクロックに依存している→ 本文の「Docker/ECS (UTC) が混在」記述を「全層Asia/Tokyo統一前提」に修正(Clock DI 推奨の根拠は維持)完了条件
grep -rn -iE "UTC|serverTimezone" docs/specs/ docs/architecture/infrastructure-plan.mdを回し、注意書き以外で UTC 言及がゼロであること関連