initializer fails to determine size of...

Tirare fuori la data in formato stringa per poi estrarne le singole componenti è un ottimo metodo per complicarsi la vita inutilmente.

Sicuramente la libreria che usi per l'RTC mette a disposizione metodi per avere direttamente i singoli campi di data e ora. Quale stai usando?