由于大多数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()
或者如果我多一点̶a̶n̶小心:
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 ++中的每一个?
答案 0 :(得分:0)
我将回答我自己的第一部分:
namespace pt = boost::posix_time;
pt::ptime now = pt::second_clock::local_time();
pt::ptime then = pt::ptime(now.date(),pt::hours(8));
pt::time_duration dt = now - then;
std::cout << dt.total_seconds() << std::endl;