2014-10-21 2 views
1

다음 코드를 고려 추가날짜 시간 및 기간은

void main() { 

    var duration = new Duration(days : 1); 
    print ("duration " + duration.toString()); 

    var d1 = new DateTime(2014, 10, 26); 
    print ("d1 " + d1.toString()); 

    d1 = d1.add(duration); 
    print ("d1 + duration " + d1.toString()); 


    var d2 = new DateTime(2014, 10, 20); 
    print ("d2 " + d2.toString()); 

    d2 = d2.add(duration); 
    print ("d2 + duration " + d2.toString()); 

} 

출력 :

duration 24:00:00.000000 
d1 2014-10-26 00:00:00.000 
d1 + duration 2014-10-26 23:00:00.000 
d2 2014-10-20 00:00:00.000 
d2 + duration 2014-10-21 00:00:00.000 

왜 년 10 월 20 (26)없이 행동을하지 다르게. 나는 매일 같은 코드를 검사했고, 매년 + 1 일이 같은 날짜와 같은 하루를가집니다. 매년 10 월 25/10에서 30/10 사이 인 것으로 보입니다.

버그입니까? 놓친 것이 있습니까?

는 감사 Peyman는

답변

1

나는 종료 일광 절약 시간 때문이다 OCT의 26 (및 10분의 25과 30/10 사이의 다른 날 생각 1 시간 (23의 차이 :. 00 : 00.000)를 이 원인으로 나타냅니다. 물론

+2

당신은 내가 날짜 시간은 현지 시간으로되는 부분을 놓쳤다. 맞다. 그것이 일광 절약이다. 내가 예상대로 10 월 20이 작동 (= 다음 날) var d1 = new DateTime.utc (2014, 10, 26); 문제점을 수정합니다. – Peyman