Dopo le segnalazioni di molti utenti, che il primo gennaio hanno scoperto che la funzionalità “Non disturbare” di iOS 6 non si disattivava automaticamente, Apple aveva diramato una nota nella quale veniva precisato che il “Non disturbare” avrebbe ripreso a funzionare regolarmente dal 7 gennaio.
Apple tuttavia non rilascerà alcun aggiornamento e gli utenti non dovranno fare niente per ripristinare il corretto funzionamento del “Non disturbare”, poiché il problema scomparirà automaticamente e non si ripresenterà fino al prossimo anno, ma sicuramente nel frattempo Apple porrà rimedio a questo piccolo bug in uno dei prossimi aggiornamenti di iOS.
Il problema risiede semplicemente in un’errata codifica del formato dell’anno, invece di utilizzare “yyyy” il programmatore ha utilizzato il formato “YYYY”. La differenza sta solo nell’utilizzo del maiuscolo al posto del minuscolo, ma per iOS fa una grossa differenza.
Il formato “YYYY” fa riferimento al calendario ISO basato sul numero della settimana, mentre il formato “yyyy” fa riferimento al calendario Gregoriano, per intenderci quello che utilizziamo abitualmente.
Ora il problema è che il calendario ISO definisce come prima settimana dell’anno quella che comincia dal primo lunedì dell’anno, ma poiché il primo gennaio del 2013 cadeva di martedì il primo giorno del calendario ISO è il 7 gennaio 2013, tutti i giorni precedenti sono considerati come facenti parte dell’ultima settimana del 2012.
La cosa curiosa è che Apple mette in guardia gli sviluppatori da questo tipico errore:
Un errore comune è l’utilizzo di YYYY. yyyy specifica l’anno del calendario, mentre YYYY specifica l’anno (della “settimana dell’anno”) usato nel calendario settimanale ISO. In molti casi yyyy e YYYY danno lo stesso risultato, ma potrebbero essere diversi. Tipicamente dovreste usare l’anno del calendario.
Dopo questo piccolo, ma clamoroso bug, i programmatori avranno un esempio molto più chiaro e concreto per evitare di cadere in errore.