per un po 'sto cercando di capire come questi tempi timezone lavoreranno, e ho avuto una domanda:Rails fuso orario e l'ora legale
Oggi nel mio paese, siamo in ora legale (GMT-2). Quindi l'utente della mia domanda immette un orario, come 11:00 AM e pubblica il modulo. Per quanto ne so, i binari convertono questa data in UTC e salvano nel database (mysql nel mio caso), come ad esempio: 01:00 PM UTC.
Quando ho recuperato quel record, ho dovuto convertire in ora locale per la visualizzazione. Ok?
La mia domanda è, supponiamo che questa data/ora rappresenti una data/ora in futuro, quando il mio paese uscirà dall'ora legale (GMT-3). Rails salverà 01:00 PM UTC? Oggi, con l'ora legale, come sarà l'ora locale? E in futuro, come sarà questa volta locale?
Fondamentalmente, ho sempre bisogno di visualizzare all'utente 11:00 AM.
grazie.
Quindi, si tratta di una questione di visualizzazione, sempre. In questo caso, tutti i valori di data passati a un parametro di filtro devono essere convertiti in UTC. – Beetlejuice
Questo è il modo giusto per pensarci, anche se forse la mia scelta di parole "visualizzate" non è stata utile. Ho avuto un caso poche settimane fa in cui un partner ha eseguito un lavoro alle 2 del mattino (indipendentemente dall'offset dell'ora legale), il che significa che dovevamo coordinarci con quello. In realtà non importa quale fuso orario la data viene memorizzata come * purché contenga il fuso orario * - se conosci il tuo fuso orario e quello della data memorizzata, hai tutto il necessario per regolare l'ora e visualizzarla tuttavia è necessario. Memorizzare le date come UTC (e impostare i sistemi in UTC) rende tutto più semplice. –
Bene, supponiamo che ora siamo in DST e salviamo un record alle 8:00 ora locale. Ciò salverà un 10am utc nel database. In un'altra mano, supponiamo che ora sia il tempo normale e salviamo un record alle 8:00 ora locale, salvando 11am utc nel database. Non è possibile visualizzare entrambi i record come 8am per l'utente. Ora, se impostiamo tutto su UTC funzionerà. – Beetlejuice