由于大多数 DST 时髦的事情发生在午夜左右,我认为简单地从“上午 8 点”时间减去当前时间应该是相当安全的,但这不是我很喜欢的解决方案。
(下面假设机器的当地时间是美国/纽约,这是一个安全的假设)
为了解释我在找什么,这是我在 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()
我将如何通过 boost 实现 C++ 中的每一个?