How to read the declared signing time of each pdf signature
- Step 1Open the viewer — Load the signed PDF into the PDF Digital Signature Viewer. Parsing is browser-local.
- Step 2Drop the document — The tool scans the AcroForm tree for signature fields and reads each
/Mvalue. - Step 3Read the declared time per signature — Each signature row shows its normalised signing time next to the signer and reason.
- Step 4Compare against your deadline — Check whether each declared time falls before the required cut-off — remembering it is a declared time, not yet a verified one.
- Step 5Escalate when the time is disputed — If the timestamp must be proven (legal dispute, deadline challenge), verify the RFC 3161 / PAdES timestamp token in Adobe Acrobat or pyHanko.
- Step 6Archive the reading — Save the declared-time rows with any TSA verification you run so your audit trail records both the claimed time and its proof.
How the signing time is read and normalised
The declared /M value is reformatted to ISO; it is not verified.
| Stage | Value | Note |
|---|---|---|
| Raw in PDF | D:20260314092105+00'00' | PDF date string from /M. |
| Normalised output | 2026-03-14T09:21:05 | What the viewer displays. |
No /M present | "" (blank) | Signing time was not recorded. |
| Source of trust | Declared by signer software | Not a verified TSA timestamp. |
Declared time vs. trusted RFC 3161 timestamp
This tool reads the first; proving the second needs a dedicated verifier.
| Question | This viewer | Desktop verifier (Acrobat / pyHanko) |
|---|---|---|
| Shows the declared signing time | Yes — from /M | Yes |
| Confirms an embedded RFC 3161 TSA token | No | Yes |
| Validates the TSA's certificate | No | Yes |
| Proves the time cryptographically | No | Yes (with a valid timestamp) |
| Long-term validation (PAdES B-LT/LTA) | No | Yes |
Tier limits for the input PDF
Apply to the signed document you load.
| Tier | Max file size | Max pages | Files per run |
|---|---|---|---|
| Free | 2 MB | 50 | 1 |
| Pro | 50 MB | 500 | 5 |
| Pro Media | 500 MB | 2,000 | 50 |
| Developer | 2 GB | 10,000 | Unlimited |
| Enterprise | Unlimited | Unlimited | Unlimited |
Cookbook
Deadline and audit situations and exactly what the viewer reports for the signing time.
A signature with a declared time
The /M value normalised to ISO format.
field: "Signature1" signer: "Alice Example" signingTime: "2026-03-14T09:21:05" (from /M, normalised) reason: "Executed before deadline"
Checking a time against a cut-off
Read the declared time and compare to the required deadline.
deadline: 2026-03-15T00:00:00 signingTime: 2026-03-14T09:21:05 → declared time is before the deadline (not yet cryptographically proven)
A signature with no recorded time
The /M key was absent, so signingTime is blank.
field: "Signature1" signer: "Bob Reviewer" signingTime: "" ← no /M recorded
Multiple signatures, multiple times
Each signature carries its own declared time in document order.
index:1 signer:"Party A" signingTime:2026-03-01T10:00:00 index:2 signer:"Party B" signingTime:2026-03-02T15:20:00
Escalating a disputed deadline
The declared time is contested — prove it with a TSA-aware verifier.
viewer: signingTime 2026-03-14T09:21:05 (declared) → open in Acrobat/pyHanko: confirm RFC 3161 timestamp token → if no TSA token, the time is unproven
Edge cases and what actually happens
You expected RFC 3161 timestamp verification
Not supported hereThis viewer reads the declared /M time only; it does not validate an embedded RFC 3161 / PAdES timestamp token or the TSA's certificate. Use Adobe Acrobat or the open-source pyHanko to verify a trusted timestamp.
Signature has a time but no trusted timestamp
InformationalThe declared /M time alone only suggests when signing occurred; without a TSA token it can't be proven. Trust is lower than for a TSA-stamped signature — escalate to a verifier if the exact time matters legally.
No signing time recorded
Expected/M is optional, so signingTime can be blank. That means the signer's software didn't record a time — not that the signature is invalid.
Time zone offset in the raw date
Preserved as parsedThe PDF date may include an offset like +00'00'. The normaliser produces the local components from the string; if precise time-zone handling matters for a deadline, confirm the raw /M value in a full verifier.
Declared time looks implausible
Not verifiedBecause the time is self-declared, a wrong or back-dated /M is possible. Only a verified TSA timestamp rules this out — check it in Acrobat or pyHanko.
Encrypted PDF
SupportedParsing loads the document with encryption ignored, so the declared time is usually readable. If a strongly encrypted file won't parse, unlock it with PDF Unlock first.
Signature field unreadable
ReportedIf the AcroForm tree is missing, the raw-byte fallback lists '(unparseable)' signatures with blank times. The signature exists but its time couldn't be read here.
eIDAS qualified timestamp
Out of scopeValidating an eIDAS-qualified timestamp against an EU trust list is well beyond a declared-time read. Use an EU-trust-list-aware validation service or a desktop verifier for that.
File too large for your tier
RejectedFree caps the input at 2 MB / 50 pages. Larger timestamped PDFs are rejected before parsing — upgrade or reduce the file.
Frequently asked questions
Does this tool verify RFC 3161 trusted timestamps?
No. It reads the declared signing time from the /M field and normalises it to ISO format, but it does not validate an embedded RFC 3161 / PAdES timestamp token or the timestamp authority's certificate. To cryptographically prove a trusted timestamp, use Adobe Acrobat or the open-source pyHanko.
What exactly is the signing time it shows?
It's the value of the /M key in each signature dictionary, reformatted from PDF date format (D:YYYYMMDDHHmmSS) to YYYY-MM-DDThh:mm:ss. It's the time the signer's software declared — not a time independently certified by a TSA.
What is an RFC 3161 timestamp?
RFC 3161 defines the protocol for trusted time-stamping: a cryptographically verified token from an authorised Time Stamping Authority that proves the moment a signature was applied. This viewer can show the declared time but cannot verify such a token — a TSA-aware verifier is required.
What if a PDF has a signing time but no trusted timestamp?
Then the declared time stands on its own with no independent proof. It only suggests signing occurred before the certificate expired, not the exact moment. Trust is lower than for a TSA-stamped signature; escalate to a verifier when the time is in dispute.
Can I rely on the declared time for a legal deadline?
Treat it as a strong indication, not proof. The declared /M value can be read here to check it falls before a cut-off, but a contested deadline should be backed by a verified RFC 3161 timestamp confirmed in Acrobat or pyHanko.
Why is the signing time blank for some signatures?
The /M key is optional. A blank signingTime means the signer's software didn't record a time in that signature dictionary — it's not an error and doesn't mean the signature is invalid.
Does the tool handle time-zone offsets?
PDF dates can include an offset such as +00'00'. The normaliser produces the date and time components from the string; if precise time-zone resolution is critical for a deadline, confirm the raw value in a full verifier.
Can it verify timestamps for eIDAS-qualified signatures?
No. Validating an eIDAS-qualified timestamp against an EU trust list requires a trust-list-aware validation service. This tool reads the declared time only.
How does this relate to verifying the signature itself?
Reading the time is separate from confirming the signature is intact. To check that the signed bytes weren't altered and that the certificate chains to a trusted root, run the PDF Signature Verifier; to prove the timestamp, use a TSA-aware desktop verifier.
Does it work on encrypted PDFs?
Usually yes — parsing loads the document with encryption ignored, so the declared time stays readable. If a strongly encrypted file won't parse, unlock it first with PDF Unlock.
Is my document uploaded?
No. All parsing happens in your browser; the file never leaves your device. Only anonymous usage counters are recorded when you're signed in.
Can I see the signer and reason next to the time?
Yes. Each signature row shows the declared signer (/Name) and reason (/Reason) alongside the normalised signing time, so you can read who signed, why, and when in one place. To inspect the full signer roster of a multi-party document, see the signature chain guide.
Privacy first
All PDF processing runs locally in your browser using PDF-lib and pdf.js. No file is ever uploaded — only metadata counters are saved for signed-in dashboard stats.