J'ai besoin de convertir un objet Date en un objet TimeWithZone représentant le début de ce jour dans un fuseau horaire donné.Conversion d'objet Date en TimeWithZone
L'approche suivante fonctionne, mais semble trop compliqué car il me demande de convertir la date à une chaîne:
?> date = Date.parse("2010-02-17")
=> Wed, 17 Feb 2010
>> ActiveSupport::TimeZone['Eastern Time (US & Canada)'].parse(date.to_s)
=> Wed, 17 Feb 2010 00:00:00 EST -05:00
>> ActiveSupport::TimeZone['UTC'].parse(date.to_s)
=> Wed, 17 Feb 2010 00:00:00 UTC 00:00
Y at-il une meilleure façon que je suis absent?
Edit: Les gens suggèrent des variations de:
?> date.to_datetime.in_time_zone('Eastern Time (US & Canada)').beginning_of_day
=> Tue, 16 Feb 2010 00:00:00 EST -05:00
Comme vous pouvez le voir, ce n'est pas une conversion équivalente car il me laisse au début du 16 février EST, au lieu du début de 17 février EST.
Il semble que votre solution pourrait être la bonne façon d'aller. –
J'ai modifié ma réponse pour résoudre ce problème. –
Donnez-vous la solution! =) L'heure avec les fuseaux horaires est toujours désordonnée. – John