ほとんどの DST の奇妙なことは真夜中頃に発生するので、単純に「午前 8 時」から現在の時刻を差し引くのはかなり安全だと思いますが、それは私が非常に満足している解決策ではありません。
(以下では、マシンの現地時間が America/New_York であると仮定しています。これは、私の目的にとって安全な仮定です)
私が探しているものを説明するために、Pythonでそれを行う方法を次に示します
from datetime import datetime,date,time
print ( datetime.now() - datetime.combine( date.today(), time(8,0,0) ) ).total_seconds()
または、もう少し気をつけていれば:
from datetime import datetime,date,time
import pytz
tz = pytz.timezone('America/New_York') #local time is always New York
now = pytz.UTC.localize(datetime.utcnow()).astimezone(tz) # now in this timezone
eight_am = tz.localize( datetime.combine( now.date(), time(8,0,0) ) )
(now - eight_am).total_seconds()
ブーストを使用して C++ でこれらのそれぞれを達成するにはどうすればよいですか?