Date & time Timestamps

LDAP timestamp converter

Value
Direction
Epoch system
Result 2023-11-14T22:13:20Z
Readable Tue, 14 Nov 2023 22:13:20 GMT
ISO 8601 2023-11-14T22:13:20.000Z
JavaScript Date Tue Nov 14 2023 22:13:20 GMT+0000 (Coordinated Universal Time)
Date only 2023-11-14
Time only (UTC) 22:13:20
Unix seconds 1,700,000,000
Unix milliseconds 1,700,000,000,000
Windows FILETIME 133,444,736,000,000,000
.NET ticks 638,355,968,000,000,000
Excel serial 45,244.925926
Mac HFS+ seconds 3,782,844,800
Note
Local · zero usually means “never”, not 1601
Advertisement
320 × 100

Active Directory stores times as Windows FILETIME: 100-nanosecond intervals since 1601. This decodes `lastLogonTimestamp`, `pwdLastSet`, `accountExpires` and the rest.

How to use the ldap timestamp converter

1 Paste the value. Every other epoch is shown alongside the date.
2 Switch the direction to go the other way — the same page converts both ways.
3 All times are UTC. Convert to your own zone separately if you need local time.

The sentinel values matter more than the arithmetic here. A pwdLastSet of 0 means the user must change their password at next logon, not that it was set in 1601. An accountExpires of 0 or 9223372036854775807 both mean the account never expires — two different sentinels for the same meaning, which is a known inconsistency in the schema. And lastLogonTimestamp is deliberately imprecise: it is only replicated between domain controllers every 9 to 14 days by default, so a value that looks a fortnight stale usually is not evidence of anything. The precise attribute is lastLogon, which is not replicated at all and therefore differs per controller.

Questions

The user must change their password at next logon. It is a sentinel, not a date in 1601.

Microsoft; Active Directory time attributes
Advertisement
300 × 250
Was this tool any good?
Internal signal only · I use it to find the tools worth rebuilding