(Reference Page)
Keyboard Maestro offers a very full featured set of date and time tokens, formats, and calculations.
Date/Time tokens are like text expansion codes that return date/time values as text in the specified format.
The most commonly used token is for returning the current date/time in the format you like:
%ICUDateTime%format%
where format is from the ICU Date/Time codes.
For example, using the Set Variable to Text Action:
Usage | Token and Format | Results |
---|---|---|
International | %ICUDateTime%yyyy/MM/dd% | 2015/11/28 |
Australia Europe | %ICUDateTime%dd/MM/yyyy% | 28/11/2015 |
United States | %ICUDateTime%EEE, MMM d, yyyy% | Sat, Nov 28, 2015 |
United States | %ICUDateTime%MM/dd/yyyy% | 11/28/2015 |
Use in File Name | %ICUDateTime%yyyy-MM-dd-HHmmssA% | 2015-11-28-15210755267426 |
You can embed most any characters you want with the Format Codes.
Here are some commonly used format codes. See the ICU Date/Time codes for the full list.
Period | Format Code | Example | Results |
---|---|---|---|
Year | y1) | yy yyyy | 96 1996 |
Month | M | M MM MMM MMMM | 9 09 Sep September |
Day | d | d dd | 2 02 |
Weekday Name | E | EEE EEEE | Tue Tuesday |
AM/PM | a | a a | am pm |
Hour (am/pm) | h | h hh | 7 07 |
Hour (24 hrs) | H | H HH | 19 19 |
Minute | m | m mm | 4 04 |
Second | s | s ss | 5 05 |
⚠️ Do not use capital “Y” (year of “Week of Year”) unless you really mean it or you will get oddly strange results at the beginning/end of each year.
Also see Wiki article ICUDateTime token
KM Token | Example |
---|---|
%ICUDateTime%<format>% Returns Current Date/Time (local) | Get Current Date/Time %ICUDateTime%EEE, MMM d, yyyy% ⇒ Sat, Nov 28, 2015 |
%ICUDateTimePlus%<Quantity>%<TimeUnit>%<format>% Adds to Current Date/Time (local) | Add 3 days %ICUDateTimePlus%3%Days%EEE, MMM d, yyyy% ⇒ Tue, Dec 1, 2015 |
%ICUDateTimeMinus%<Quantity>%<TimeUnit>%<format>% Subtracts from Current Date/Time (local) | Subtract 1 month %ICUDateTimeMinus%1%Months%EEE, MMM d, yyyy% ⇒ Wed, Oct 28, 2015 |
%ICUDateTimeFor%NOW()<+ or –><Seconds>%format% Adds or Subtracts from Current Date/Time (GMT) | Add 1 hour to Current GMT %ICUDateTimeFor%NOW()+ (60*60) %EEE, MMM d, yyyy h:mm% ⇒ Sat, Nov 28, 2015 7:14 |
%ICUDateTimeFor% TIME(<Year>, <Month>, <Day> [, <Hour>, <Min>, Sec>])%<format>% Sets absolute date/time (GMT) | Set absolute date in GMT %ICUDateTimeFor% TIME(2015, 12, 25) %EEE, MMM d, yyyy% ⇒ Thu, Dec 24, 2015 Set absolute date in LOCAL time %ICUDateTimeFor% TIME(2015, 12, 25) - GMTOFFSET() %EEE, MMM d, yyyy% ⇒ Fri, Dec 25, 2015 |
where
Since TIME() and NOW() returns the specified date/time in GMT, you can adjust for your local time zone by subtracting the GMTOFFSET() function
%ICUDateTimeFor% TIME(2015, 12, 25) - GMTOFFSET() %EEE, MMM d, yyyy%
⇒ Fri, Dec 25, 2015
Here are some other date/time related tokens and functions:
[Editor: Plan to put in table with descriptions]
For a more complete discussion on the many different ways to use date and times, see KM dates & times: Notes on anchors, intervals, and translations (Aug 2015), with contributions by @ComplexPoint, @peternlewis, and others.
TBD
If you find any issues, or have any suggestions, concerning this page, please report them to Draft Rewrite of Wiki Dates and Times Article