日付フォーマットの仕様
日付の形を %Y-%m-%d のような記号で nehan に伝えるための書き方です。文字列を日付として読むときに使います。
日付を文字に戻すとき(変数)にも同じ記号を使いますが、グラフだけは別の書き方です(効いてくる場面)。
記号の一覧
| 要素 | 記号 | 読むときに合う文字 | 見せるときに出る文字 |
|---|---|---|---|
| 年(4 桁) | %Y | 2024 | 2024 |
| 年(2 桁) | %y | 24 | 24 |
| 月 | %m | 01 1 | 01 |
| 日 | %d | 15 5 | 15 |
| 時(24 時間制) | %H | 13 | 13 |
| 時(12 時間制) | %I | 01 | 01 |
| 分 | %M | 30 | 30 |
| 秒 | %S | 45 | 45 |
| 小数秒 | %f | 小数点以下の桁(下記) | 6 桁 |
| 午前・午後 | %p | PM | PM |
| 月の英語名 | %B | January | January |
| 月の英語略称 | %b | Jan | Jan |
記号以外の文字(単位や区切り記号)は、データの見た目のとおりに書きます。 2024年1月15日 であれば %Y年%m月%d日 です。
使えない組み合わせがある
記号は自由に組み合わせられません。 次の 3 つに当てはまる書き方は、データを見る前に拒否されます。データの中身とは関係なく、必ず失敗します。
| 当てはまる書き方 | 例 |
|---|---|
時(%H %I)と分(%M)の片方だけを書いた | %Y/%m/%d %H / %Y/%m/%d %M |
秒(%S)を書いたのに時を書いていない | %Y/%m/%d %S |
12 時間制(%I)と午前・午後(%p)の片方だけを書いた | %Y/%m/%d %I:%M / %Y/%m/%d %p |
出るメッセージは外れたときにあります。
書かなかった要素は補われる
| 書かなかった要素 | 補われる値 |
|---|---|
| 日 | 1 日(%Y-%m に 2024-01 を読ませると 2024 年 1 月 1 日) |
| 月 | 1 月(%Y に 2024 を読ませると 2024 年 1 月 1 日) |
| 年 | 1900 年(%m月%d日 に 01月15日 を読ませると 1900 年 1 月 15 日) |
1 桁の月日が読めない形がある
日まで書いた形式なら、月も日も 1 桁で読めます。 %Y年%m月%d日 は 2024年1月15日 も 2024年01月15日 も読みます。
日を書かない形式では、2 桁に揃っている必要があります。
| データ | 形式 | 結果 |
|---|---|---|
2024年01月 | %Y年%m月 | 2024 年 1 月 1 日 |
2024年1月 | %Y年%m月 | 欠損値になる |
01月15日 | %m月%d日 | 1900 年 1 月 15 日 |
1月15日 | %m月%d日 | 欠損値になる |
時間の形式(%H時%M分%S秒)は、1時5分3秒 のように 1 桁でも読めます。
小数秒はドットから続けて書く
小数秒は .%f と、ドットを %f の直前に付けて書きます。 桁数は何桁でもよく、.123 は 123 ミリ秒、.123456 は 123456 マイクロ秒として読まれます。
| データ | 形式 | 結果 |
|---|---|---|
13:05:30.123 | %H:%M:%S.%f | 13:05:30.123 |
13:05:30.123456 | %H:%M:%S.%f | 13:05:30.123456 |
13:05:30.123456789 | %H:%M:%S.%f | 13:05:30.123456(7 桁目から先は落ちる) |
13:05:30 | %H:%M:%S.%f | 13:05:30(小数秒がなくてもエラーにならない) |
nehan が持てる小数秒はマイクロ秒(6 桁)までです。7 桁目から先は、形式を指定してもしなくても落ちます。
見せるときの %f は 6 桁で出ます。.123 を持つ値は .123000 と表示されます。
効いてくる場面
| 場面 | どちらの形式か | 行き先 |
|---|---|---|
| 文字列を日付型に変える | 読むとき | 列の型変更 |
| 日付の変数を作る | 見せるとき | 変数構成要素と変数型 |
日付要素の切り出しに記号を書く欄はありません。 取り出す要素を一覧から選ぶだけで、形式は nehan が決めます。
外れたとき
使えない組み合わせを書いた
使えない組み合わせがあるの 3 つに当てはまると、入力した形式がそのままメッセージに出ます。
日付フォーマット「%Y/%m/%d %H」は使用できません。時(%H)と分(%M)は両方指定するか、どちらも指定しないでください。
日付フォーマット「%Y/%m/%d %S」は使用できません。秒(%S)を指定する場合は時(%H)も指定してください。
日付フォーマット「%Y/%m/%d %I:%M」は使用できません。12時間表記(%I)と午前/午後(%p)は両方指定するか、どちらも指定しないでください。
上の 3 つのどれにも当てはまらない形で拒否されたときは、理由を示さないメッセージになります。
日付フォーマット「%Y/%m/%d %H」は使用できません。指定内容を見直してください。
直し方 — メッセージに出ている形式を記号の一覧と見比べて組み直します。
形式は使えるがデータが読めない
形式そのものは使えるが、その形で読めない値が列に入っているときです。
値: 2019/4/1 が入力された日付フォーマットで読み込めませんでした。フォーマットを見直すか、「型変更不可エラーを無視する」オプションを有効にするか、データを修正してください。参考: https://octopus.nehan.io/manual/1152/
直し方 — メッセージに出ている値を手がかりに、記号以外の文字がデータと合っているかを確かめます。値の前後の空白や、1 つの列に混ざった 2 種類の形も原因になります。残りのエラーと直し方は列の型変更にあります。