Since 2010

Sublime Text timestamp snippet

2 parts needed: a Python module to generate the string, and a definition to make the class available as a Sublime Text command.

The end result of all of this is a new Sublime Text command which outputs something like this at the current cursor position:


~/Library/Application Support/Sublime Text 3/Packages/User/

Python module which defines a subclass of sublime_plugin.TextCommand and uses Sublime Text’s hooks to spew out a formatted datetime as a snippet.

Ever tried to get Python to output the local UTC offset? What a mess. My solution was shamelessly stolen from this Stack Overflow answer:

import time
import datetime
import sublime_plugin

class DateTimeStampCommand(sublime_plugin.TextCommand):
    def run(self, edit):
        utc_offset_sec = time.altzone if time.localtime().tm_isdst else time.timezone
        utc_offset = datetime.timedelta(seconds=-utc_offset_sec)
        formatted_string ='%Y-%m-%dT%H:%M%z')

                "contents": formatted_string

~/Library/Application Support/Sublime Text 3/Packages/User/date-time.sublime-commands

This surfaces the new class method in Sublime Text’s command pallet:

        "caption": "Insert ISO8601 date and time",
        "command": "date_time_stamp"