g | x | w | all
Bytes Lang Time Link
051Ruby ln rdate250926T080812ZDingus

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.