Das sieht sehr gut aus, danke! Entspricht zwar noch nicht ganz den Vorlagen, aber ich denke, das kommt nah genug ran.
Ich würde gerne noch auf die Darstellung des Monats verzichten und habe in Deinem Code etwas entfernt. Der Monat wird entfernt, allerdings wird nach dem Jahr immer noch ein Leerzeichen eingefügt, was ich gerne weghätte.
Ohne das zu testen, würde ich auf ein ungewolltes Leerzeichen aufgrund des Zeilenumbruchs tippen. Beende Zeilen immer mit dem Kommentarzeichen %, damit der Zeilenumbruch nicht als Leerzeichen interpretiert wird.
Dafür gibt es die Option date=year, dann muss man keine Makros umdefinieren.
Die gezeigte Definition hatte das Problem, dass ein Zeilenumbruch im Quellcode von TeX wie ein Leerzeichen behandelt wird (Leerzeichen am Beginn einer Zeile werden normalerweise ignoriert, ebenso werden mehrere Leerzeichen zu einem einzelnen zusammengefasst). In dem konkreten Kontext werden Leerzeichen ganz normal ausgegeben, was dann dazu führt, dass vor und nach dem Jahr ein Leerzeichen zustande kommt.
\printfield{year} ist inzwischen aber nicht mehr zu empfehlen, da es weder mit den neuen Features für ISO/EDTF nicht klar kommt und nicht auf Optionen reagiert. Nutze daher bitte date=year.