Check calendar limits and leap-second context
04Correct punctuation is only the first check. Calendar days, clock ranges and leap-second events constrain which field values make sense.
Conditional example only: if a negative leap second were announced, the last minute would proceed from :58 directly to the next minute’s :00. This is not a claim that such an event occurred.
Source for this drawing: RFC 3339 · Read RFC section 5.7 ↗
New to this? Start hereA quick picture + helpful background
A message needs an address.
Think of a packet as a small addressed envelope. Devices pass it onward; transport protocols decide what delivery promises an application gets.
Start with this guide; no earlier guide is needed for the overview.
These pictures are analogies to help you learn. The linked RFC explains the actual rules.
Terms in this drawing
Related RFCs and changes
“Updates” changes part of an earlier RFC. “Obsoletes” replaces it. This list shows selected related documents.
Validate the calendar and the actual leap context.
- Day limits depend on month and Gregorian leap year. A year divisible by 4 is a leap year, except centuries must be divisible by 400. The clock hour in this profile is 00–23, even where other ISO forms permit 24.
- Ordinary seconds run 00–59. An announced inserted leap second permits 60 at the relevant UTC boundary; in another offset it occurs at the same instant with a shifted local clock.
- A removed leap second would leave 58 as the last second before the next minute. Leap events cannot be predicted far ahead, and applications should not generate inserted-leap timestamps before announcement.
The positive-leap examples are published in §5.8: 1990-12-31T23:59:60Z and 1990-12-31T15:59:60-08:00. The negative-leap illustration is conditional and names no actual event. Appendix D is a historical list, not a current announcement service. The bounded teaching helper handles the published 1990 event separately from ordinary date arithmetic and does not pretend a platform Date parser validates leap seconds.
Read the RFC section ↗