2017-11-17 11 views
-1

날짜 유틸리티를 테스트 중이며 예기치 않은 동작이 발견되었습니다. 내 테스트는 날짜를 특정 날짜/월/년으로 설정하고, 24 시간을 더하고, 다음 날짜를 반환하는지 확인하는 것입니다. 아래에있는 내 테스트에서날짜에 대한 버그를 발견했습니다.

,이,하지만 11월 5일 11 월 4, 2017 년 11 월 (6), 2017 일, 2017

이 그것을 명확 버그 그렇지? 핵심 GNU 유틸리티에 어떻게 근본적인 결함이있을 수 있습니까?

[[email protected] creditsafe]$ date=`date -d "2017-11-04" +%s` 
[[email protected] creditsafe]$ date_new=`expr $date + 86400` 
[[email protected] creditsafe]$ req_t=`date -d @$date_new "+%Y%m%d"` 
[[email protected] creditsafe]$ echo $req_t 
20171105 
[[email protected] creditsafe]$ date=`date -d "2017-11-06" +%s` 
[[email protected] creditsafe]$ date_new=`expr $date + 86400` 
[[email protected] creditsafe]$ req_t=`date -d @$date_new "+%Y%m%d"` 
[[email protected] creditsafe]$ echo $req_t 
20171107 
[[email protected] creditsafe]$ date=`date -d "2017-11-05" +%s` 
[[email protected] creditsafe]$ date_new=`expr $date + 86400` 
[[email protected] creditsafe]$ req_t=`date -d @$date_new "+%Y%m%d"` 
[[email protected] creditsafe]$ echo $req_t 
20171105 

[[email protected] creditsafe]$ date --version 
date (GNU coreutils) 8.4 
Copyright (C) 2010 Free Software Foundation, Inc. 
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>. 
This is free software: you are free to change and redistribute it. 
There is NO WARRANTY, to the extent permitted by law. 

Written by David MacKenzie. 
+3

어떤 버그가 있습니까? 당신은 당신이 무엇을 기대하고 무엇을 얻었는지를 설명해야합니다. 나는 사용자가 이것을 골라 내고 간단하게 지적 할 수있는 것을 추론해야한다고 생각하지 않는다. –

+2

버그가 아닙니다. DST 시간은 북아메리카의 대부분에서 2017 년 11 월 5 일에 끝났으므로 하루는 25 시간이었습니다. –

+0

대단한 잡기는 나에게 답할만한 가치가있는 것으로 보인다. –

답변

1

당신이 제안 명백한 차이에 관심을 표시 다음 (지적 그 86,400초 = 24 시간)

  • 2017년 11월 4일 0시 + 86,400초 = 2017-11 -05 00:00
  • 2017-11-05 00:00 + 86400 초 = 2017-11-05 24:00 (아래 참조)
  • 2017-11-06 00:00 + 86400 초 = 2017- 11-07 00:00

이것은 이 아니며 버그입니다.

현재 거주중인 시간대는 언급되어 있지 않지만 대부분의 북미 지역에서 2017-11-05는 일광 절약 시간제가 끝난 날이므로 25 시간 (90000 초)이었습니다.

+0

편집 해 주셔서 감사합니다. stackoverflow에서 첫 번째 질문을 게시 할 때 형식에 익숙하지 않아 질문을 다시 형식화하려고 시도했지만 다른 사람이 정식으로 형식을 지정했다는 것을 발견했습니다. 마법은 –

+0

@ElvinLin, NP입니다. 내 대답이 정확하다고 생각되면 그것을 수락 할 수 있습니다 (회색 체크 표시를 클릭하십시오) 그리고 upvote. 또한 [둘러보기] (https://stackexchange.com/tour)를 추천합니다. –