[Linux] クロック設定_date, hwclock, timedatectl

# dateコマンド

```terminal
$ date [MMDDhhmm[[CC]YY][.ss]]
$ date [+表示形式]
```

| オプション                 | 由来            | 説明                                                                                                              |
| :-------------------- | :------------ | :-------------------------------------------------------------------------------------------------------------- |
| default               | date/time     | 現在の日付と時刻を表示<br>例：`Mon Jun 17 13:45:00 JST 2024`                                                        |
| `MMDDhhmm[[CC]YY]` | manual set    | システム日付・時刻を手動で変更<br>MM=月、DD=日、hh=時、mm=分、CC=世紀(20など)、YY=年、.ss=秒<br>例：`date 061814302025` → 2025年6月18日14時30分に変更 |
| `+表示形式`               | custom format | 日付・時刻を指定したフォーマットで表示<br>例：`date "+%Y/%m/%d %H:%M:%S"` → `2025/06/18 14:30:00` のように出力される                      |



## 表示形式

| 書式   | 意味       | 例           |
| :--- | :------- | :---------- |
| `%Y` | 西暦（4桁）   | `2025`      |
| `%m` | 月（2桁）    | `06`        |
| `%d` | 日（2桁）    | `18`        |
| `%H` | 時（24時間制） | `14`        |
| `%M` | 分        | `30`        |
| `%S` | 秒        | `00`        |
| `%a` | 曜日（英語）   | `Wednesday` |
| `%b` | 月名（英語）   | `June`       |

# hwclockコマンド
```terminal
# hwclock [オプション]
```

| オプション   | 由来                         | 説明                                                                         |
| :------ | :------------------------- | :------------------------------------------------------------------------- |
| default | hardware clock             | ハードウェアクロックの時刻を表示（基本的には `-r` と同じ動作）                                       |
| `-r`    | read                       | ハードウェアクロックの時刻を表示<br>例：`hwclock -r` は `2025-06-18 14:30:00` のような形式で出力   |
| `-s`<br>`--hctosys`    | set system from hardware   | **ハードウェアクロックの時刻をシステムクロックに反映**<br>例：`hwclock -s` は RTC（BIOS時計）→ Linux時刻 へ更新 |
| `-w`<br>`--systohc`    | write hardware from system | **システムクロックの時刻をハードウェアクロックに書き込み**<br>例：`hwclock -w` は Linux時刻 → RTC に反映      |


# timedatectl コマンド

```bash
$ timedatectl [サブコマンド]
```

| サブコマンド           | 由来                | 説明                                                                               |       
| :--------------- | :---------------- | :------------------------------------------------------------------------------- |
| `default`        | system clock info | `status` と同様に現在の時刻、タイムゾーン、NTP 設定を表示                             |         |
| `status`         | system status     | 現在のシステム時刻・RTC時刻・タイムゾーン・NTP設定の状態を表示<br>例：`Local time` や `NTP synchronized` などを確認可 |         |
| `set-ntp`        | set NTP service   | NTP 同期の有効/無効を切り替える<br>書式：\`timedatectl set-ntp true                              | false\` |
| `set-time`       | set system time   | システムクロックの時刻を手動で変更する<br>書式：`timedatectl set-time 'YYYY-MM-DD HH:MM:SS'`           |         |
| `set-timezone`   | set time zone     | タイムゾーンを変更する<br>例：`timedatectl set-timezone Asia/Tokyo`                           |         |
| `list-timezones` | list time zones   | タイムゾーンの一覧を表示<br>例：`timedatectl list-timezones` で候補から選択可能                    |         |



# Ping-t
- [4798_date](https://mondai.ping-t.com/question_subjects/32/question_sessions/33867186/progressing_questions/518471886)
- [5015_date](https://mondai.ping-t.com/question_subjects/32/question_sessions/34000185/progressing_questions/520498143)
- [4774_hwclock -r](https://mondai.ping-t.com/question_subjects/32/question_sessions/33866047/progressing_questions/518453897)
- [4799_hwclock -w, --systohc](https://mondai.ping-t.com/question_subjects/32/question_sessions/34000185/progressing_questions/520498142)
- [5079_timedatectl set-time](https://mondai.ping-t.com/question_subjects/32/question_sessions/33867186/progressing_questions/518471883)