はじめに
Notion Tips の第157回目は少し正規表現から離れて、現在の言語における月名を得る方法を解説します。
言語による月名の表示
日本語、韓国語、中国語では月名に数値がありますが、それ以外の言語は月名が単語で表現されます。このため、単に数値を取り出すだけでは、メンションから日付を取得することができません。かといって、ユーザに事前に月名を設定してもらうのは面倒です。このため処理の中で、各月の月名の表現を取得する必要があります。月毎にリスト化することで、index から数値化したり、単純に文字列置き換えをすることで、月の数値を得ることにします。
作成した数式
数式は以下のようになりました。
let( months, "." .repeat(12) .split("") .map( ((202401+index)*100+1) .parseDate() .formatDate("MMMM") ), months.join(",") )
数式を解説して欲しいという要望を X で受けたので、これも解説してみます。
let(months,- 次の式が months という変数の値になります。
"."- 一文字です。文字は実はなんでもいいです。
.repeat(12)- 前の
"."を 12 回繰り返します。 - 結果として、
"............"という文字列になります。
- 前の
.split("")- 文字列を分割します。空文字なので、1文字ずつ分割します。
- 結果として、
[".", ".", ".", ".", ".", ".", ".", ".", ".", ".", ".", "."]というリストになります。
.map(((202401+index)*100+1).parseDate().formatDate("MMMM"))- map はリストの各項目を式で変換したリストを返します。map の中の式が複雑なので少しずつ分解して説明します。
.map(index)- リストの項目を index に変換します。結果として
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]というリストになります。
- リストの項目を index に変換します。結果として
.map(202401+index)- 結果は
[202401, 202402, 202403, 202404, 202405, 202406, 202407, 202408, 202409, 202410, 202411, 202412]となります。
- 結果は
.map((202401+index)*100+1)- 結果は
[20240101, 20240201, 20240301, 20240401, 20240501, 20240601, 20240701, 20240801, 20240901, 20241001, 20241101, 20241201]となります。
- 結果は
.map(((202401+index)*100+1).parseDate())- 結果は
[(January 1, 2024), (February 1, 2024), (March 1, 2024), (April 1, 2024), (May 1, 2024), (June 1, 2024), (July 1, 2024), (August 1, 2024), (September 1, 2024), (October 1, 2024), (November 1, 2024), (December 1, 2024)]となります。実際には中身は日付です。
- 結果は
.map(((202401+index)*100+1).parseDate().formatDate("MMMM"))- 最終的にこれで、
["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"]という文字列を取得します。
- 最終的にこれで、
言語を変更した時の結果
実際に上記の式を設定し、ボタンを押したらテキストにコピーするオートメーションを設置してみました。言語を切り替えてボタンを押すことで、以下のようにページごとに異なる言語の月名を登録することができました。

X にもそのことをポストしました。
それぞれの言語環境でちゃんと月の文字列取得できた。これでなんとか作れそうな気がしてきた。たくさんの人に使ってもらうためにも、やはり config less で行こう。#Notion #notiontwt pic.twitter.com/xOoHemo54h
— hkob|Notion Ambassador (@hkob) 2024年11月17日
おわりに
今回は、文字列の月名を全て取得し、リスト化する方法を解説しました。これにより時刻を示す文字列から日付を得る数式を書ける目処がついたのでした。明日はこの続きを解説します。
https://hkob.notion.site/Notion-Tips-545bd67d60aa4e18bd3be43c117908e5?pvs=4