2012-11-06 2 views
2

대부분의 DST 펑키 물건은 자정 무렵에 발생하므로 "8 am"시간에서 현재 시간을 빼는 것이 안전해야한다고 생각합니다. 나는 매우 편안합니다. 부스트로 오전 8 시부 터 시간 경과하기

은 내가 무엇을 찾고 설명하기 위해 (가 시스템의 로컬 시간은 미국/뉴욕 것으로 가정 다음 무엇을, 그것은 내 목적을 위해 안전한 가정이다), 여기에 내가 파이썬에서 그것을 할 것입니다 방법

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++에서 각각의 성능을 향상시킬 수 있습니까?

+0

는 "자정 발생"- 네, 오전 2시 구체적으로. –

+0

제목은 "8am 이후 시간"이지만 첫 번째 단락의 일시적인 해결책으로 설명합니다. 당신이 해결하려고하는 근본적인 문제는 무엇입니까? –

+0

해결 방법으로 "since 8am"을 설명하지 않았으므로 현지 시간과 현지 시간의 차이를 오전 8시에 약간 해결 방법으로 설명합니다. 왜? 어느 날 내가 8시에서 자정 또는 오전 1 시로 바뀌면 코드가 깨질 것입니다. 왜냐하면 어느 날 내가 "어제 8시 이후로"만들고 싶다면 해결책도 깨질 것입니다. 첫 번째 방법 (간단한 차이)에 대한 답은 실제로 도움이 될 것이기 때문에 나는 친숙하지 않습니다. 부스트 시간 기능. 두 번째 방법에 대한 대답은 물론 두렵습니다. –

답변

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; 
관련 문제