9
votes

Obtenez Offset UTC dans Ruby

J'essaie d'obtenir le décalage UTC pour une date d'heure. La dateTime est enregistrée comme suit:

ven, 31 mai 2013 15:19:08 EDT -04: 00

Ce que j'aimerais obtenir, c'est "- 04:00" . Lorsque je fais objet.utc_offset , je reçois -14400 . Quelle fonction dois-je utiliser?


0 commentaires

3 Réponses :


3
votes

c'est en quelques secondes. Divisez de 3600 pendant des heures ou 60 pendant des minutes.

Mais si vous voulez la chaîne de décalage formatée, utilisez la réponse de VGOff.


0 commentaires

18
votes

Vous recherchez Strftime : xxx

qui vous donnera le décalage tel que "-04: 00".


2 commentaires

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.



-1
votes

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 (le livre Pickaxe), pour une élaboration ultérieure. % z donne des compensations sur l'heure, % z donne le nom du fuseau horaire, par exemple. MDT, PST, etc.


0 commentaires