Rename Multiple Files by Date on Windows and Mac — 6 Methods
Renomee Team
Published on September 7, 2026
How to Rename Multiple Files by Date on Windows and Mac (6 Methods)
Quick answer: On Windows, use PowerShell (built-in, supports milliseconds) or Bulk Rename Utility (free GUI, second precision). On Mac, use Terminal with bash (built-in) or Automator (GUI, limited format options). On both platforms, Renomee handles the same rules in plain English — including millisecond precision and combining dates with existing filenames. If your files are photos, use EXIF Date Taken instead — it never resets when you copy files.
You scan 200 contracts and get scan001.pdf, scan002.pdf. You download a week of bank statements and they all arrive as Statement.pdf. Your video project folder has final.mp4, final_v2.mp4, and FINAL_REAL.mp4. The date each file was last saved is sitting right there in the filesystem — you just need a way to stamp it onto the filename so the folder sorts itself.
This guide covers 4 Windows methods and 3 Mac methods, ordered by ease of use, with a clear breakdown of which ones support millisecond precision and how to combine a date with the file's existing name.
Quick Comparison: All 6 Methods
| Method | Platform | Date Source | ms Support | GUI | Skill Level |
|---|---|---|---|---|---|
| PowerShell | Windows | Modified / Created | ✅ | ❌ | ★★★☆☆ |
| Bulk Rename Utility | Windows | Modified / Created | ❌ | ✅ | ★★★☆☆ |
| PowerToys PowerRename | Windows | Modified | ❌ | ✅ | ★★☆☆☆ |
| Renomee | Windows + Mac | Modified / Created | ✅ | ✅ | ★☆☆☆☆ |
| Terminal (bash) | Mac | Modified / Created* | ⚠️ | ❌ | ★★★☆☆ |
| Automator | Mac | Modified | ❌ | ✅ | ★★☆☆☆ |
* Mac Terminal requires mdls to read Birth Time (Creation date). Milliseconds require a Python 3 workaround.
Date Created vs Date Modified — Which Should You Use?
Before picking a method, choose the right timestamp.
| Timestamp | Set by | Resets when |
|---|---|---|
| Date Modified | OS — last file save | File content is edited and saved |
| Date Created | OS — file arrives here | File is copied to a new location |
| Date Taken | Camera EXIF — capture moment | Never |
The copy problem: If you move a folder of PDFs from an old laptop to a new machine, every file's Date Created becomes today. Date Modified stays unchanged. This is why:
- Documents and downloads → use Date Modified. It reflects when the content was last changed, not when you moved it.
- Scanned files you've never edited → use Date Created, as long as they haven't been copied since scanning.
- Photos → use EXIF Date Taken. Both system timestamps are unreliable after any transfer or sync. See Rename Photos by Date Taken (EXIF).
Date Format Patterns — What Goes in the Filename?
Choose your format before setting up any tool. You'll reference these patterns throughout the methods below.
Date-only formats
YYYY-MM-DD → 2026-09-07 ← Recommended — ISO 8601, alphabetical sort = chronological
YYYYMMDD → 20260907 ← Compact — useful for short name limits or URL slugs
DD-MM-YYYY → 07-09-2026 ← European style — alphabetical sort is wrong
MM-DD-YYYY → 09-07-2026 ← US style — alphabetical sort is wrong
Always put the year first. Files named 2026-09-07_report.pdf sort chronologically everywhere — Windows Explorer, macOS Finder, Linux, cloud storage. Files named 09-07-2026_report.pdf do not.
Date + time formats (second precision)
Use these when multiple files share the same calendar date — for example, a dozen invoices all exported on the same day.
YYYY-MM-DD_HH-MM-SS → 2026-09-07_14-30-22
YYYYMMDD_HHMMSS → 20260907_143022 ← Compact, safe on all OS
YYYY-MM-DDTHH-MM-SS → 2026-09-07T14-30-22 ← Full ISO 8601
Use
-and_as separators. Avoid:— Windows does not allow colons in filenames.
Millisecond precision formats
Most files don't need milliseconds. Use them when:
- A process writes multiple files per second (server logs, database exports, automated pipelines)
- You're renaming burst photos using filesystem dates instead of EXIF (EXIF is still a better source for photos — it stores sub-second data natively)
- You need guaranteed uniqueness across a high-frequency batch
YYYYMMDD_HHMMSSfff → 20260907_143022847
YYYYMMDD_HHMMSS_fff → 20260907_143022_847 ← Underscore separator, easier to read
YYYY-MM-DD_HH-MM-SS_fff → 2026-09-07_14-30-22_847
fff represents three millisecond digits (0–999). NTFS on Windows stores timestamps at 100-nanosecond resolution; APFS on Mac stores them at nanosecond resolution. The millisecond value is real data, not a placeholder.
⚠️ Not all tools can read or write milliseconds. See the comparison table below.
Combining the date with the existing filename
This is the most common real-world pattern — date as a prefix, original name preserved for reference.
| Pattern | Example result |
|---|---|
| Date prefix + original name | 2026-09-07_Statement_August.pdf |
| Date-time prefix + original name | 20260907_143022_Statement_August.pdf |
| Date-ms prefix + original name | 20260907_143022_847_export_batch3.log |
| Original name + date suffix | Statement_August_2026-09-07.pdf |
| Date only (replaces name) | 2026-09-07.pdf — use only when the date is the sole identifier |
How to Rename Files by Date on Windows (4 Methods)
Method 1 — PowerShell: Rename Files by Date Modified or Created
PowerShell is built into every Windows installation and gives you the most control: choose Modified or Created, pick any date format, and go down to millisecond precision. Always use -WhatIf first to preview without changing anything.
Step 1. Open PowerShell (Win + X → Terminal, or search "PowerShell").
Step 2. Navigate to your folder:
cd "C:\Users\YourName\Documents\Contracts"
Step 3. Choose the command for your situation:
Date Modified prefix + keep original name
# Preview (no files are renamed)
Get-ChildItem *.pdf | Rename-Item -WhatIf -NewName {
$_.LastWriteTime.ToString("yyyy-MM-dd") + "_" + $_.Name
}
# Execute
Get-ChildItem *.pdf | Rename-Item -NewName {
$_.LastWriteTime.ToString("yyyy-MM-dd") + "_" + $_.Name
}
Statement_August.pdf → 2026-09-07_Statement_August.pdf
Date Created prefix + keep original name
Get-ChildItem *.pdf | Rename-Item -NewName {
$_.CreationTime.ToString("yyyy-MM-dd") + "_" + $_.Name
}
Date + time (second precision) — prevents conflicts on same-day batches
Get-ChildItem *.pdf | Rename-Item -NewName {
$_.LastWriteTime.ToString("yyyy-MM-dd_HHmmss") + "_" + $_.Name
}
Statement_August.pdf → 2026-09-07_143022_Statement_August.pdf
Millisecond precision — for log files or high-frequency exports
Get-ChildItem *.log | Rename-Item -NewName {
$_.LastWriteTime.ToString("yyyyMMdd_HHmmss_fff") + "_" + $_.Name
}
app.log → 20260907_143022_847_app.log
The fff specifier writes exactly three millisecond digits, drawn from the real NTFS timestamp — not a counter.
Recursive — all subfolders at once
Get-ChildItem -Path . -Recurse -File -Filter *.pdf | Rename-Item -NewName {
$_.LastWriteTime.ToString("yyyy-MM-dd") + "_" + $_.Name
}
Difficulty: ★★★☆☆
Milliseconds: ✅ native (fff)
Undo: ❌ no built-in undo — always test with -WhatIf first
Method 2 — Bulk Rename Utility: GUI Date Renaming with Full Format Control
Bulk Rename Utility is a free Windows tool. Its interface is dense but the live preview column shows every rename before you commit — nothing executes until you click Rename.
Step 1. Download and install from bulkrenameutility.co.uk. Free for personal use.
Step 2. Open BRU, navigate to your folder in the left panel, select your files.
Step 3. Locate the Auto Date (8) panel in the bottom-right area. Configure:
- Mode →
Prefix - Type →
Modified(orCreated) - Fmt →
YMD - Cent → checked (forces 4-digit year)
- Sep →
_(separator between date and original filename) - Seg →
-(separator between year, month, day)
Step 4. Check the New Name column. Correct? Click Rename.
Custom date formats in BRU
Switch Fmt to Custom and enter a format string:
%Y-%m-%d → 2026-09-07
%Y%m%d_%H%M%S → 20260907_143022
%Y-%m → 2026-09 (group files by month)
%Y → 2026 (group files by year)
Date + original name combination in BRU
The Auto Date panel prepends the date. The original filename is preserved automatically — the prefix drops in front of whatever name is already there.
To append a date suffix instead: change Mode from Prefix to Suffix.
Limitation: BRU resolves to second precision only — no millisecond support. If two files share the same second, use the Numbering (5) panel to append a counter (_001, _002) alongside the date prefix.
Difficulty: ★★★☆☆
Milliseconds: ❌
Undo: ❌ — preview carefully before executing
Method 3 — PowerToys PowerRename: Date Prefix via Right-Click
PowerToys PowerRename integrates directly into the File Explorer right-click menu. It's primarily designed for photo renaming by EXIF Date Taken — for general files, its date support covers Date Modified only and resolves to day precision (no time, no milliseconds).
Step 1. Install PowerToys from the Microsoft Store or GitHub releases. Free and open-source.
Step 2. Select your files in File Explorer → right-click → PowerRename.
Step 3. Enable Use Regular Expressions. Set:
- Search →
(.+)(captures the full original filename) - Replace with →
$YYYY-$MM-$DD_$1
Step 4. Confirm the preview shows the date prefix. Click Rename.
The $YYYY, $MM, $DD variables reflect each file's Last Modified date. The $1 back-reference injects the captured original filename after the date.
Limitation: No Date Created variable for non-photo files. No time components, no millisecond support. If you need more than a date-only prefix for general files, use PowerShell or Bulk Rename Utility instead.
Difficulty: ★★☆☆☆
Milliseconds: ❌
Undo: ✅ (PowerRename has a one-step undo in the top toolbar)
Method 4 — Renomee: Plain-English Date Rules, Zero Configuration
Renomee replaces format strings and regex with plain-English rules. Describe the rename, Renomee reads the file timestamps, builds a preview with conflict detection, and executes. Every session is logged with one-click undo.
Step 1. Open Renomee. Drag your folder in, or right-click files in File Explorer → Open with Renomee.
Step 2. Type your rule:
Prefix each file with its modification date in YYYY-MM-DD format, keep the original filename.
For second precision:
Add modification date and time as a prefix in YYYYMMDD_HHmmss format.
Keep the original filename after the timestamp.
For milliseconds:
Prefix each log file with its modification timestamp including milliseconds.
Format: YYYYMMDD_HHmmss_fff
For creation date:
Prefix each PDF with its creation date in YYYY-MM-DD format.
Step 3. Review the before/after preview. Conflicts — two files that would resolve to the same name — are highlighted before any file is touched.
Step 4. Click Execute. Undo from the history panel if needed.
Renomee also handles conditional logic that pattern-based tools cannot express:
# Use creation date when modification date is today (files freshly copied from another machine)
If the file's modification date is today, use creation date instead. Prefix with YYYY-MM-DD.
# Recursive with subfolder awareness
Prefix all PDFs in all subfolders with their modification date in YYYY-MM-DD format.
Difficulty: ★☆☆☆☆
Milliseconds: ✅
Undo: ✅
How to Rename Files by Date on Mac (3 Methods)
Method 5 — Terminal (bash/zsh): Rename Files by Date on Mac
Mac Terminal gives you full control over date format and file selection. The built-in date -r command reads modification time; for creation date (Birth Time), you need mdls. Milliseconds require a Python 3 script.
Step 1. Open Terminal (Spotlight → Terminal, or Applications → Utilities → Terminal).
Step 2. Navigate to your folder:
cd ~/Documents/Contracts
Step 3. Choose the command for your situation:
Date Modified prefix + keep original name
for f in *.pdf; do
prefix=$(date -r "$f" +%Y-%m-%d)
mv "$f" "${prefix}_${f}"
done
Statement_August.pdf → 2026-09-07_Statement_August.pdf
Date + time (second precision)
for f in *.pdf; do
prefix=$(date -r "$f" +%Y-%m-%d_%H-%M-%S)
mv "$f" "${prefix}_${f}"
done
Statement_August.pdf → 2026-09-07_14-30-22_Statement_August.pdf
Date Created (Birth Time) on Mac
date -r reads modification time only. For creation date, use mdls:
for f in *.pdf; do
birthdate=$(mdls -name kMDItemFSCreationDate -raw "$f" | awk '{print $1}')
# mdls returns YYYY-MM-DD — strip and reformat if needed
mv "$f" "${birthdate}_${f}"
done
If Spotlight indexing is disabled on that volume,
kMDItemFSCreationDatemay return(null). UseGetFileInfo -d "$f"as a fallback (requires Xcode Command Line Tools:xcode-select --install).
Date suffix instead of prefix (append to original name)
for f in *.pdf; do
base="${f%.*}"
ext="${f##*.}"
suffix=$(date -r "$f" +%Y-%m-%d)
mv "$f" "${base}_${suffix}.${ext}"
done
Statement_August.pdf → Statement_August_2026-09-07.pdf
Millisecond precision on Mac (requires Python 3)
macOS date -r resolves to whole seconds. Python 3 (pre-installed on macOS 12+) reads the fractional timestamp:
python3 << 'EOF'
import os, glob, datetime
for path in glob.glob("*.log"):
t = os.path.getmtime(path)
dt = datetime.datetime.fromtimestamp(t)
ms = int((t - int(t)) * 1000)
prefix = dt.strftime("%Y%m%d_%H%M%S") + f"_{ms:03d}"
dirname = os.path.dirname(path) or "."
basename = os.path.basename(path)
os.rename(path, os.path.join(dirname, f"{prefix}_{basename}"))
EOF
app.log → 20260907_143022_847_app.log
Change *.log to your file extension. For creation date instead of modification time, replace os.path.getmtime(path) with os.stat(path).st_birthtime (macOS only).
Difficulty: ★★★☆☆
Milliseconds: ⚠️ requires Python 3 snippet
Undo: ❌ — no built-in undo; test on a copy first
Method 6 — Automator: Rename Files by Date Without Code on Mac
Automator is built into macOS and requires no scripting. Its date rename capability is limited but sufficient for simple date prefixes.
Step 1. Open Automator (Spotlight → Automator). Create a new Quick Action.
Step 2. Set Workflow receives → files or folders in Finder.
Step 3. Search for and add the Rename Finder Items action. If Automator prompts to add a Copy Finder Items step before renaming, click Don't Add — you want to rename the originals.
Step 4. In the action dropdown, select Add Date or Time.
Step 5. Configure:
- Add →
Date - to →
beginning of name(for a prefix) - Date →
Last Modified Date - Format →
Custom→ enterYYYY-MM-DD_(note the trailing underscore before the original name)
Step 6. Save the workflow (Cmd + S, give it a name). In Finder, select your files → right-click → Quick Actions → run your workflow.
Limitations:
- Date Created is not available — Automator's Rename action only exposes Last Modified Date.
- No time components — the format picker supports year, month, and day, but not hours, minutes, or seconds.
- No milliseconds.
If you need time precision or creation date, use Terminal or Renomee instead.
Difficulty: ★★☆☆☆
Milliseconds: ❌
Undo: ✅ (Cmd + Z in Finder immediately after)
Method 7 — Renomee for Mac: Plain-English Date Rules, No Terminal Required
Renomee for Mac uses identical rule syntax to the Windows version. No format strings, no shell scripting, same one-click undo.
Step 1. Open Renomee on Mac. Drag your folder in.
Step 2. Type your rule — same syntax as Windows:
Prefix each file with its modification date in YYYY-MM-DD format.
Keep the original filename.
For second precision:
Add modification date and time (YYYYMMDD_HHmmss) as a prefix.
Keep the original filename after the timestamp.
For milliseconds:
Prefix all log files with their modification timestamp including milliseconds.
Format: YYYYMMDD_HHmmss_fff
For creation date (Birth Time) — no mdls syntax required:
Prefix each file with its creation date in YYYY-MM-DD format.
For a date suffix instead of prefix:
Append the modification date (YYYY-MM-DD) to each filename, before the extension.
Step 3. Review the preview. Conflicts are flagged.
Step 4. Execute. Undo from the history panel.
Difficulty: ★☆☆☆☆
Milliseconds: ✅
Undo: ✅
Which Methods Support Millisecond Timestamps?
| Method | Platform | ms Support | Detail |
|---|---|---|---|
| PowerShell | Windows | ✅ | .ToString("yyyyMMdd_HHmmss_fff") — native NTFS resolution |
| Bulk Rename Utility | Windows | ❌ | Seconds only |
| PowerToys PowerRename | Windows | ❌ | Day precision only for non-photo files |
| Renomee | Windows + Mac | ✅ | Plain-English rule: "including milliseconds" |
| Terminal (bash) | Mac | ⚠️ workaround | date -r stops at seconds; Python 3 script required for ms |
| Automator | Mac | ❌ | Date-only output |
When do you actually need milliseconds?
| Scenario | ms Needed? |
|---|---|
| Batch of weekly reports | ❌ date-only is enough |
| Invoices exported same day | ⚠️ add time (seconds) |
| Server log files (multiple per second) | ✅ milliseconds required |
| Burst photos via file system date | ✅ (use EXIF Date Taken if possible) |
| Database export batches | ✅ milliseconds recommended |
For most document and scan jobs, second precision handles same-date conflicts without needing milliseconds. If even seconds produce collisions (rare outside log/automation workflows), either add milliseconds or append a counter suffix (_001, _002).
FAQ
What is the difference between Date Created and Date Modified?
Date Modified updates every time the file's content is saved. Date Created records when the file first appeared at its current path on this machine. Copying a file resets Date Created to the moment of the copy — Date Modified stays unchanged. For most document archiving use cases, Date Modified is the safer choice because it survives file transfers.
Which methods support milliseconds when renaming files by date?
PowerShell on Windows natively supports milliseconds via the fff format specifier. Renomee on both Windows and Mac supports milliseconds through plain-English rules. Mac Terminal requires a Python 3 snippet since date -r resolves only to whole seconds. Bulk Rename Utility and Automator stop at second precision.
Will renaming files change their timestamps?
No. Renaming is a directory operation — only the filename entry in the folder index changes. The file's content and all associated timestamps (Date Modified, Date Created, Date Accessed) remain completely unchanged on both Windows and Mac.
What if multiple files have the same timestamp?
Add a counter to disambiguate. In PowerShell, track a $counter variable and append -1, -2 to the name. In Bulk Rename Utility, add a numeric increment in the Numbering (5) panel alongside the date prefix. Renomee detects all naming conflicts in the preview phase and resolves them before any file is renamed.
How do I rename files using Date Created on Mac?
macOS stores creation date as "Birth Time," accessible via mdls -name kMDItemFSCreationDate -raw "file" in Terminal. In Renomee for Mac, just type "use creation date" in your rule — no shell commands needed.
My files are photos — should I use Date Modified or EXIF Date Taken?
Always use EXIF Date Taken for photos. Both Date Modified and Date Created reset when you copy or sync photos between devices. EXIF Date Taken is written by the camera at the moment of capture and never changes regardless of how many times the file is moved or copied. See How to Rename Photos by Date Taken on Windows 11 for EXIF-specific tool instructions.
Summary: Which Method Should You Use?
| Your situation | Best method |
|---|---|
| Windows, command line is fine, need ms precision | PowerShell |
| Windows, want a GUI, second precision is enough | Bulk Rename Utility |
| Windows, already have PowerToys, quick date prefix | PowerToys PowerRename |
| Windows or Mac, want zero syntax, need undo | Renomee |
| Mac, command line is fine, no ms needed | Terminal (bash) |
| Mac, want a GUI, date-only prefix is enough | Automator |
| Mac, need ms precision without any scripting | Renomee for Mac |
| Files are photos — any platform | Use EXIF Date Taken instead |
Further Reading
Tags
About the Author
The Renomee team is dedicated to providing users with the best file management solutions, sharing practical tips and in-depth technical articles.
Table of Contents
Start Using Renomee
Download Renomee and experience smart file management today
Quick Links
Related Articles
Batch Remove Special Characters from Filenames: 4 Methods
Batch remove special characters from filenames in Windows 11. Compare 4 methods: manual F2, PowerShell regex, PowerRename, and AI tools. Clean 1000+ files in 15 seconds with step-by-step guides.
Batch Rename 200 PDF Papers in 1 Minute (Instead of 40)
Downloaded 200 papers and they're all named 'Author - 2024 - Some Very Long Title'? Skip the Excel + batch script nightmare. Renomee uses AI to clean up your entire library in under a minute.
Rename Multiple Files at Once with Different Names
Rename multiple files at once with different names in Windows 11. Compare File Explorer, PowerShell, and AI renaming for photos, PDFs, and 1,000+ files.