一瞬で日時を取得するKeyboard Maestroのタイムスタンプ機能についてまとめる
Keyboard Maestroには、タイムスタンプを生成する機能があります。
ファイル名やメモのタイトルなど、ファイルを保存する時などに、一瞬でタイムスタンプが入力できるので非常に便利です。
今回はそんなタイムスタンプ機能について細かくまとめておきます。
タイムスタンプの仕組み
タイムスタンプには下記の4種類の情報があり、それらを%
記号で区切って1つのタイムスタンプとして表現します。
- トークン:タイムスタンプの最初に入力。日付の計算をするかどうかや、Mac標準の時刻を使うかどうかなどもここに記述
- 日付計算式:
%ICUDateTimeMinus%
か%ICUDateTimePlus%
を使っている場合は、現在の日時から計算した数だけ前後したタイムスタンプを取得できる - 日付計算の単位:「日付計算式」で入力した値の単位を設定
- フォーマット:タイムスタンプなどでよく見かける「yyyy/MM/dd」などのフォーマットを入力する
日付計算式と日付計算の単位に関しては省略が可能です。
また、フォーマット部分に関しては、%LongDate%など一部トークンによっては省略されます。
トークン一覧
日付に関するトークンは下記の通りです。
トークン | 内容 | 備考 |
---|---|---|
%ICUDateTime% | 基本となるトークン、現在の日付と時刻を取得する | |
%ICUDateTimeFor% | 日付の計算をして、過去や未来の日付と時刻を取得する | 負の値になると過去、正の値になると未来になる |
%ICUDateTimeMinus% | 日付の計算をして、過去の日付と時刻を取得する | |
%ICUDateTimePlus% | 日付の計算をして、未来の日付と時刻を取得する | |
%LongDate% | [システム環境設定]→[言語と地域]→[詳細]→[日付]の「すべて:」が適用 | 設定を変えていないと、英語圏のデフォルトが適用される |
%LongTime% | [システム環境設定]→[言語と地域]→[詳細]→[時刻]の「中:」が適用 | |
%NumberDate% | [システム環境設定]→[言語と地域]→[詳細]→[日付]の「短:」が適用 | |
%ShortDate% | [システム環境設定]→[言語と地域]→[詳細]→[時刻]の「長」が適用 | 設定を変えていないと、英語圏のデフォルトが適用される |
%ShortTime% | [システム環境設定]→[言語と地域]→[詳細]→[時刻]の「短:」が適用 |
%LongDate%
から%ShortTime%
までのトークンは、Macの[システム環境設定]→[言語と地域]→[詳細]内にある情報から引っ張ってきますが、そこの設定がデフォルトのままだと、英語圏のデフォルトフォーマットが優先して適用されてしまいます。
%ShortDate%
なのに、時刻の「長:」からフォーマットを引っ張ってきたり、直感的ではないのと、Mac共通の設定なので他のアプリにも影響が出てしまうため、自分は使わないようにしています。
日付計算式の単位
日付計算式の単位として使えるものの一覧です。(単位を設定しないと、自動的に秒単位になります)
単位 | 意味 |
---|---|
Years | 年単位になる |
Month | 月単位になる |
Days | 日単位になる |
Weeks | 週単位になる |
Hours | 時間単位になる |
Minutes | 分単位になる |
Seconds | 秒単位になる |
タイムスタンプが使えるアクションの見分け方
タイムスタンプが使えるアクションは、主にアクションブロック内に「Insert Token」という文字が書かれているか、入力フォーム内に「T」と書かれた四角いアイコンがあれば使用できます。
フォーマット
使用できるフォーマットをまとめました。コピペで使えるので参考にしてください。
ちなみに、結果は2019年7月9日の10時9分36秒を想定しています。
内容 | 入力 | 結果 | 備考 |
---|---|---|---|
今年の西暦4桁 | %ICUDateTime%yyyy% | 2019 | yの数が3つ1つでも反応 |
今年の西暦下2桁 | %ICUDateTime%yy% | 19 | |
去年の西暦4桁 | %ICUDateTimeMinus%1%Years%yyyy% | 2018 | %1%の数字を変えれば数年前の西暦に変更可能 |
去年の西暦下2桁 | %ICUDateTimeMinus%1%Years%yy% | 18 | |
来年の西暦4桁 | %ICUDateTimePlus%1%Years%yyyy% | 2020 | |
来年の西暦下2桁 | %ICUDateTimePlus%1%Years%yy% | 20 | |
今月の数字2桁 (1〜9月は最初に0が付く) | %ICUDateTime%MM% | 07 | |
今月の数字1桁 (10〜12月は2桁になる) | %ICUDateTime%M% | 7 | |
今月を英語表記(3文字表示) | %ICUDateTime%MMM% | Jul | Jan / Feb / Mar / Apr / May / Jun / Jul / Aug / Sep / Oct / Nov / Dec |
今月を英語表記(全文表示) | %ICUDateTime%MMMM% | July | |
先月の数字2桁 | %ICUDateTimeMinus%1%Month%MM% | 06 | |
来月の数字2桁 | %ICUDateTimePlus%1%Month%MM% | 08 | |
今日の日付2桁 (1〜9日は最初に0が付く) | %ICUDateTime%dd% | 09 | |
今日の日付1桁 (1〜9日以外は2桁になる) | %ICUDateTime%d% | 9 | |
今年に入ってから今日までの日数 | %ICUDateTime%DD% | 190 | Dの数に応じて最低何桁か設定できる |
昨日の日付2桁 | %ICUDateTimeMinus%1%Days%dd% | 08 | |
明日の日付2桁 | %ICUDateTimePlus%1%Days%dd% | 10 | |
1週間前の日付2桁 | %ICUDateTimeMinus%1%Weeks%dd% | 02 | |
1週間後の日付2桁 | %ICUDateTimePlus%1%Weeks%dd% | 16 | |
今日の曜日を英語表記(3文字表示) | %ICUDateTime%EEE% | Tue | |
今日の曜日を英語表記(全文表示) | %ICUDateTime%EEEE% | Tuesday | |
今日の曜日を数字表記 | %ICUDateTime%e% | 3 | 日曜日を1、土曜日を7として数字が入力される eの数に応じて最低何桁か設定できる |
昨日の曜日を英語表記(3文字表示) | %ICUDateTimeMinus%1%Days%EEE% | Mon | |
昨日の曜日を英語表記(全文表示) | %ICUDateTimeMinus%1%Days%EEEE% | Monday | |
明日の曜日を英語表記(3文字表示) | %ICUDateTimePlus%1%Days%EEE% | Wed | |
明日の曜日を英語表記(全文表示) | %ICUDateTimePlus%1%Days%EEEE% | Wednesday | |
今の時間2桁を12時間表記 (1〜9時は最初に0が付く) | %ICUDateTime%hh% | 10 | 深夜0時は12、日中12時も12になる |
今の時間1桁を12時間表記 (10〜12時は2桁になる) | %ICUDateTime%h% | 10 | |
今の時間2桁を24時間表記 (1〜9時は最初に0が付く) | %ICUDateTime%HH% | 10 | 深夜0時は0、日中12時は12になる |
今の時間1桁を24時間表記 (10〜23時は2桁になる) | %ICUDateTime%H% | 10 | |
1時間前の時間2桁を24時間表記 | %ICUDateTimeMinus%1%Hours%HH% | 09 | |
1時間後の時間2桁を24時間表記 | %ICUDateTimePlus%1%Hours%HH% | 11 | |
今の分を2桁表記 (1〜9分は最初に0が付く) | %ICUDateTime%mm% | 09 | 60分は00で統一される |
今の分を1桁表記 (10〜59分は2桁になる) | %ICUDateTime%m% | 9 | |
10分前の分を2桁表記 | %ICUDateTimeMinus%10%Minutes%mm% | 59 | |
10分後の分を2桁表記 | %ICUDateTimePlus%10%Minutes%mm% | 19 | |
今の秒数を2桁表記 (1〜9秒は最初に0が付く) | %ICUDateTime%ss% | 36 | 60分は00で統一される |
今の秒数を1桁表記 (10〜59秒は2桁になる) | %ICUDateTime%s% | 36 | |
10秒前の秒数を2桁表記 | %ICUDateTimeMinus%10%Seconds%ss% | 26 | |
10秒後の秒数を2桁表記 | %ICUDateTimePlus%10%Seconds%ss% | 46 |
まとめ
このタイムスタンプ機能は工夫次第で色んなことができそうです。
- 今日の日付を入力
- 今日の日付付きのファイルを作成
- 曜日に応じて処理を変える
- 毎月1日になったら何か処理を行う
また、かなり前のnoteの記事ですが「今日の日付をショートカットキーで入力できるようにする」マクロの作り方に関してまとめていたりもするので、そちらも参考にしてみてください。