Change files timestamp with a dialog window.
GUI automatically fallback to a text interface when display is not available.
Install with a single command from PyPi.
pip install touch-timestamp
Or eventually add eel to provide browser-like GUI window.
pip install touch-timestamp[eel]
When invoked with file paths, the program sets their modification times
- to the specified time
- to the date from the Exif through jhead
- to a relative time
- to the specific time, set for a file, then shifts all the other relative to this
Should you end up with files that keep the date in the file name, use the --from-name
parameter.
$ touch-timestamp 20240828_160619.heic --from-name True
Changed 2001-01-01T12:00:00 → 2024-08-28T16:06:19: 20240828_160619.heic
Use the --help
to see full options.
$ touch-timestamp --help
usage: Touch [-h] [--eel | --no-eel] [--from-name {True,False}|STR]
[[PATH [PATH ...]]]
╭─ positional arguments ─────────────────────────────────────────────────────╮
│ [[PATH [PATH ...]]] │
│ Files the modification date is to be changed. (default: ) │
╰────────────────────────────────────────────────────────────────────────────╯
╭─ options ──────────────────────────────────────────────────────────────────╮
│ -h, --help │
│ show this help message and exit │
│ --eel, --no-eel │
│ Prefer Eel GUI. (Set the date as in a chromium browser.) │
│ Does not allow setting from EXIF and relative set. (default: False) │
│ --from-name {True,False}|STR │
│ Fetch the modification time from the file names stem. Set the format │
│ as for `datetime.strptime` like '%Y%m%d_%H%M%S'. │
│ If set to True, the format will be auto-detected. │
│ If a file name does not match the format or the format cannot be │
│ auto-detected, the file remains unchanged. │
│ │
│ │
│ Ex: `--from-name True 20240827_154252.heic` → modification time = │
│ 27.8.2024 15:42 (default: False) │
╰────────────────────────────────────────────────────────────────────────────╯
To change the file timestamps easily from Krusader, import this user action: touch-timestamp %aList("Selected")%