Koga Kazuo
kogak****@gmail*****
2007年 3月 21日 (水) 23:33:38 JST
こんにちは。古賀と申します。 srfi-19にあるdate->stringの動作についての質問です。 以下のコードで、 (date->string (time-utc->date (make-time time-utc 0 0)) "~5") => "1970-01-01T 9:00:00" というように時間のところが2桁ではなく1桁と空白になります。 これは意図した実装なんでしょうか。 空白がなんだか気持ち悪いのですが。 ISO-8601について解説したサイトを調べたところ時間のところ は2桁で表示するように読めたので、やっぱり2桁が正しいんじゃないかと 思いました。 ISO-8601の正式な仕様ではここは空白なのだ、とかsrfi-19の仕様ではここは 空白なのだ、とか理由があっての実装なのでしょうか。 gaucheのソースでは、ext/srfi/srfi-19-lib.scmの915行目あたり、 (display (date->string date "~Y-~m-~dT~k:~M:~S")))) というコード(~k)があるので、意図したものなのか…。 でも、同ファイルの750行目あたりには、 (define tm:iso-8601-date-time-format "~Y-~m-~dT~H:~M:~S~z") というコードもあり、もしかして実装ミスかなあとも思ったしだいです。