7

I am on El Capitan OS X.

I want to be able to hit some keyboard shortcut and then have today's date be automatically outputted.

Example:

When I press Option + D, "2016_06_13" is pasted into the text field.

The date would be automatically calculated based on my time zone.

Ideally, I'd like to be able to do this universally. So in Finder, Safari, TextEdit, etc. — not just exclusive to one program.

Having this shortcut would streamline my workflow.

Is this possible?

12

You could do it with Automator like this:

  1. Create new: Services
  2. Services receives no input in any application
  3. Use the search to find and add action: Run Applescript
    • Copy and paste the following to the field on the right:

tell application "System Events"
    set _Date to (current date)
    keystroke ¬
        (year of _Date as text) & "_" & ¬
        text -2 thru -1 of ("00" & ((month of _Date) as integer)) & "_" & ¬
        (day of _Date as text)
end tell

Note that the day will not have a leading zero like the month does. If you want that, you could replace the line with: (day of _Date as text) with: text -2 thru -1 of ("00" & ((day of _Date) as integer))


  1. Save with: Cmd + S. Give it a name you can remember in the next step.
    • If you simply use the Save command ( Cmd + S ) instead of Save as... the Service file is automatically put in the right place.

enter image description here

The Last step would be to define a shortcut for the service you just made.

Go to mac System preferences > Keyboard > Shortcuts > Services and then find the service you saved before. You should find it at the bottom area of the list. Double click the none text on the right side of the service name and give it a shortcut.

  • Would it be possible to learn how to do this without clipboard interference? – rubik's sphere Aug 9 '16 at 4:46
  • @rubik'ssphere Updated the answer. – Joonas Aug 9 '16 at 7:56
9

A simpler and faster answer:

I wanted to use the system date format for consistency, rather than programming it into the shortcut.

It only takes about 30 seconds to set up.

IN AUTOMATOR (Applications folder)

  1. New service

  2. Receives no input in any application

  3. Drag Run Applescript from the Utilities section on the left into the right pane

  4. Check Output replaces selected text at the top of the right pane

  5. In the Applescript window replace all the text with

on run {input, parameters} set _date to short date string of (current date) tell application "System Events"     keystroke _date end tell end run

  1. Save the service as Short Date workflow

enter image description here

IN SYSTEM PREFERENCES (Keyboard › Shortcuts)

  1. Click Services on the left

  2. Short Date will be listed under Text in the right panel

  3. Add a key combination for the new Short Date service

enter image description here

IN SYSTEM PREFERENCES (Language & Region › Advanced)

  1. Click on the Dates tab

  2. Modify the Short: format as desired

  3. Click OK

enter image description here

Note: this system depends on the Services menu under the Application menu. When the menu is not accessible, the service isn't either. It does not work, for example, in the open and save dialog.

  • Amazing answer !!! – kyo Nov 29 '17 at 23:55
  • What could I do to find out why exactly this doesn't work for me? :/ – Bloke Aug 10 '18 at 10:51
  • You should see "short date" under the services menu, under the menu for the application you're using. I'm in Chrome right now, and under "Chrome › Services" I see "Short Date". There are some contexts where it won't work, like the open and save dialog. I should have mentioned that in my answer, and will modify it. – Andrew Swift Aug 10 '18 at 15:00
4

The easiest way I know of to do this is with 3rd-party text expansion apps. Personally I use Typinator, with a rule that expands the word dt (i.e. typing D then T) to {YYYY}_{MM}_{DD}, which is Typinator's placeholder format for the current date. The program uses the local system time and OS accessibility features to fill into nearly any text field, so it would be a good fit for your use case.

There are other programs that also do this, the most well known of which is probably TextExpander. Lifehacker has a good round-up of text expansion apps from a few years ago which may be worth a look.

It is also possible to accomplish this with AppleScript and a launching application like Alfred or Quicksilver, as in this answer, but for me the convenience of being able to expand many different abbreviations with an easy-to-learn syntax and UI outweighs the cost savings of using AppleScript.

0

The above options work well until Mojave. I was trying to insert the current date into the Reminders app with a keystroke and I get an error that suggests that the automator does not have permissions to perform a keystroke command. To allow this go to "System Settings -> Security & Privacy -> Privacy -> Accessibility -> Reminders" It is annoying that it only permits the action on the specific app but that seems to be the case.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .