WebDesigner's Memorandumウェブデザイナーの備忘録

一瞬で日時を取得するKeyboard Maestroのタイムスタンプ機能についてまとめる

一瞬で日時を取得するKeyboard Maestroのタイムスタンプ機能についてまとめる

Keyboard Maestroには、タイムスタンプを生成する機能があります。
ファイル名やメモのタイトルなど、ファイルを保存する時などに、一瞬でタイムスタンプが入力できるので非常に便利です。

今回はそんなタイムスタンプ機能について細かくまとめておきます。

タイムスタンプの仕組み

タイムスタンプには下記の4種類の情報があり、それらを%記号で区切って1つのタイムスタンプとして表現します。

Keyboard Maestroのタイムスタンプ

  • トークン:タイムスタンプの最初に入力。日付の計算をするかどうかや、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」と書かれた四角いアイコンがあれば使用できます。

Insert Text by Typing

使えるアクション一覧

下記は実際にタイムスタンプ機能が使えるアクションになります。

こうして一覧にしてみると、かなりの数のアクションで使えますね。

  • Alert
  • Append Text to a File
  • Apply a BBEdit Text Factory
  • Apply Modifiers to a Specific Application
  • Click Front Browser Link
  • Click Google Chrome Link
  • Click Safari Link
  • Comment
  • Copy a File
  • Delete a File
  • Display Text
  • Duplicate a File
  • Execute a JavaScript in Custom Prompt
  • Execute an Automator Workflow
  • Focus Front Browser Field
  • Focus Google Chrome Field
  • Focus Safari Field
  • For Each Path in Folder
  • Get a URL
  • Get a File Attribute
  • Get Touch Bar Selection
  • Insert Text by Pasting
  • Insert Text by Typing
  • Log
  • Move or Rename a File
  • New Folder
  • New Front Browser Tab
  • New Front Browser Window
  • New Google Chrome Tab
  • New Google Chrome Window
  • New Safari Tab
  • New Safari Window
  • Notification
  • Open a File, Folder or Application
  • Open a URL
  • Press a Button
  • Prompt for File
  • Prompt for User Input
  • Prompt With List
  • Read a File
  • Remote Trigger
  • Reset Front Browser Form
  • Reset Google Chrome Form
  • Reset Safari Form
  • Reveal a File
  • Search and Replace
  • Search the Web
  • Search using Regular Expression
  • Select Front  Browser Field
  • Select Google Chrome Field
  • Select or Show a Menu Item
  • Select Safari Field
  • Semaphore Lock
  • Semaphore Reset
  • Semaphore Unlock
  • Send iMessage
  • Send Mail Message
  • Send MIDI Packet
  • Send SMS
  • Set Clipboard to Text
  • Set Clipboard to Variable
  • Set Dictionary Value
  • Set File Attribute
  • Set File Attribute
  • Set Front Browser Checkbox
  • Set Front Browser Field to Text
  • Set Front Browser Radio Button
  • Set Front Browser Title
  • Set Front Browser URL
  • Set Google Chrome Checkbox
  • Set Google Chrome Field to Text
  • Set Google Chrome Radio Button
  • Set Google Chrome Title
  • Set Google Chrome URL
  • Set Keychain Password to Text
  • Set Keychain Password to Variable
  • Set Network Location
  • Set Safari Checkbox
  • Set Safari Field to Text
  • Set Safari Radio Button
  • Set Safari Title
  • Set Safari URL
  • Set Variable to Text
  • Set Variable to Front Browser Field
  • Set Variable to Google Chrome Field
  • Set Variable to Keychain Password
  • Set Variable to Safari Field
  • Set Variable to Text
  • Speak Text
  • Split Path
  • Submit Front Browser Form
  • Submit Google Chrome Form
  • Submit Safari Form
  • Switch/Case
  • Trash a File
  • Trigger Macro by Name
  • Write to a File

フォーマット

使用できるフォーマットをまとめました。コピペで使えるので参考にしてください。

ちなみに、結果は2019年7月9日の10時9分36秒を想定しています。

内容入力結果備考
今年の西暦4桁%ICUDateTime%yyyy%2019yの数が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%JulJan / 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%190Dの数に応じて最低何桁か設定できる
昨日の日付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%0960分は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%3660分は00で統一される
今の秒数を1桁表記
(10〜59秒は2桁になる)
%ICUDateTime%s%36 
10秒前の秒数を2桁表記%ICUDateTimeMinus%10%Seconds%ss%26 
10秒後の秒数を2桁表記%ICUDateTimePlus%10%Seconds%ss%46 

まとめ

このタイムスタンプ機能は工夫次第で色んなことができそうです。

  • 今日の日付を入力
  • 今日の日付付きのファイルを作成
  • 曜日に応じて処理を変える
  • 毎月1日になったら何か処理を行う

また、かなり前のnoteの記事ですが「今日の日付をショートカットキーで入力できるようにする」マクロの作り方に関してまとめていたりもするので、そちらも参考にしてみてください。

著者について

プロフィール画像

サイトウ マサカズ@31mskz10

1997年生まれ。2016年から専門学校でデザインについて勉強。卒業後は神戸の制作会社「N'sCreates」にウェブデザイナーとして入社。このブログでは自分の備忘録も兼ねて、ウェブに関する記事や制作環境を効率的に行うための記事を書いています。

Twitterをフォロー Facebookでいいね