2017-09-29 1 views
0

je dois obtenir le temps en millisecondes depuis 1970 pour aujourd'hui avec BST (heure d'été britannique) compenséRuby TimeZone Millisecondes depuis l'epoch à minuit

a = DateTime.now 
=> Fri, 29 Sep 2017 16:30:29 +0100 

b = DateTime.new(a.year, a.month, a.day, 0, 0, 0, 0) 
=> Fri, 29 Sep 2017 00:00:00 +0000 # this is an hour out 

b.strftime('%Q').to_i 
1506643200000      # therefore this is an hour out 

Comment puis-je corriger cela?

b = b.in_time_zone 
=> Fri, 29 Sep 2017 01:00:00 BST +01:00 # looks promising but... 

b.strftime('%Q').to_i 
=> 0          # grrr 

Toute aide la bienvenue

Répondre

0

J'ai trouvé cette solution:

a = DateTime.now 
=> Fri, 29 Sep 2017 16:30:29 +0100 

a = a.beginning_of_day 
=> Fri, 29 Sep 2017 00:00:00 +0100 

milliseconds_since_1970 = a.to_i * 1000 
=> 1506639600000      <-- correct!