J'essaie d'obtenir le décalage UTC pour une date d'heure. La dateTime est enregistrée comme suit: p>
ven, 31 mai 2013 15:19:08 EDT -04: 00 P> blockQuote>
Ce que j'aimerais obtenir, c'est
"- 04:00" code>. Lorsque je faisobjet.utc_offset code>, je reçois-14400 code>. Quelle fonction dois-je utiliser? P>
3 Réponses :
c'est en quelques secondes. Divisez de 3600 pendant des heures ou 60 pendant des minutes. P>
Mais si vous voulez la chaîne de décalage formatée, utilisez la réponse de VGOff. P>
Vous recherchez qui vous donnera le décalage tel que "-04: 00". p> p> Strftime code> :
J'ai trouvé que je devais utiliser le ':' Flag 'pour utiliser des colons pour% Z'. (Ruby 1.9.3) C'est-à-dire TIME.ZONE.NOW.StrfTime ("%: z") => "+01: 00"
Note latérale, le décalage UTC est différent de la zone horaire. Plusieurs fuseaux horaires partagent le même offset UTC. Et un décalage d'une seule zone temporelle changera basé sur des économies de jour.
VGOFF et Matt Johnson me sont battus, mais pour une élaboration ultérieure, voir la page 717-720 et le tableau 27.18 dans Programmation Ruby 3rd Edition EM> (le livre Pickaxe), pour une élaboration ultérieure. % z strong> donne des compensations sur l'heure,