| Bytes | Lang | Time | Link |
|---|---|---|---|
| 051 | Ruby ln rdate | 250926T080812Z | Dingus |
Ruby -ln -rdate, 79 59 53 51 bytes
Date.parse$_[/^\d{17}[\dX]$/,$_.to_i(13)%11-1][6,8]
Try it online! Full program that takes input from STDIN and outputs via exit code: 0 for a valid ID number, 1 otherwise.
Verify all test cases. Instead of trying to capture exit codes, the wrapper here prints true for a valid ID number and the exception thrown for an invalid ID number.
Uses the observation from @Albert.Lang's Python answer. Go upvote it.