作者 主題: /bin/date 處理 79-06-30  (閱讀 1945 次)

0 會員 與 1 訪客 正在閱讀本文。

dark

  • 俺是博士!
  • *****
  • 文章數: 1581
    • 檢視個人資料
/bin/date 處理 79-06-30
« 於: 2014-08-11 08:28 »
剛剛從 log 看到
代碼: [選擇]
date: invalid date ‘79-06-30 +11 year’
date: invalid date ‘81-02-29 +11 year’
date: invalid date ‘85-02-29 +11 year’

這應該是民國轉西元的動作
date --date="85-02-29 +11 year" +%F
85-02-29 不存在 ... 那 79-06-30 呢 ?

手動打了
date --date="79-06-30" +%F
結果
date: invalid date ‘79-06-30 ’



netman

  • 管理員
  • 俺是博士!
  • *****
  • 文章數: 17465
    • 檢視個人資料
    • http://www.study-area.org
Re: /bin/date 處理 79-06-30
« 回覆 #1 於: 2014-08-11 18:51 »
bug?

dark

  • 俺是博士!
  • *****
  • 文章數: 1581
    • 檢視個人資料
Re: /bin/date 處理 79-06-30
« 回覆 #2 於: 2014-08-12 10:00 »
應該是 bug 吧 ...

不過排除 02-29
還看到 1974-04-01 , 1975-04-01




dark

  • 俺是博士!
  • *****
  • 文章數: 1581
    • 檢視個人資料
Re: /bin/date 處理 79-06-30
« 回覆 #3 於: 2014-08-14 17:47 »
原來是日光節約 , 不是 bug
http://www.javaworld.com.tw/jute/post/view?bid=5&id=159587&sty=3

原本想置換 /bin/date
用把已知日期置換成 /bin/date_BK "$(echo $@ | 排除清單)" 的方法

1945-05-01 1946-05-01 1947-05-01 1948-05-01 1949-05-01 1950-05-01 1951-05-01
1952-03-01 1953-04-01 1954-04-01 1955-04-01 1956-04-01 1957-04-01 1958-04-01
1959-04-01 1960-06-01 1961-06-01 1974-04-01 1975-04-01 1979-06-30

跟那篇的最後一天似乎有點差異

既然是節約日光問題 , 那
alias date='date -u'
這樣就 ok 了

只是 script 用的話 , alise 無法繼承







不自覺又進入哲學層次(??)的思考 ...

從西元 0 年到 2737-11-27 , 只出現上述清單 (1945~1979)
... 古代人沒時間觀念就算了 , 未來人竟然不懂節約 ...... 科技真可怕 , 快要能製造時間來浪費了

... 秦始皇能統一文字 , 貨幣 ... 成吉思汗忘了搞這些 ?
繞地球半圈 , 那時間要是統一不分區 , 手錶怎麼調 ?
..... 那不調時鐘 , 以明文規定各地區日出日落時間 ... 哇 ..... 那就上帝等級了 (果然 , 神話總有被科學證實的一天)