That Cocoa Thing

back to index 戻る
Modified: 2002.4.12 [Created: 2002.3.1]

概要
    DateDescription Etude
      NSCalendarDate クラス、NSDate クラスの description 系メソッドの確認用サンプル。


内容
    日付や時刻の文字列表現が欲しい場合には NSCalendarDate クラスや NSDate クラスの description 系メソッドが利用できます。
    で、どのような文字列が得られるのかを確認するために作成したのがこのサンプルです。
    注意点として、システム環境設定の地域情報で選択されている地域に一致する *.lproj がアプリケーションに必要なようです。
    例えば、地域情報の日付のところで日本を選択している場合、アプリケーションには Japanese.lproj が存在しないと正しい結果が得られない場合があります。
    この状況を確認してみたい方は、プロジェクトから Japanese.lproj の参照を削除し、すべてをクリーニング後、再ビルドしてください。
    ところで、
    [now descriptionWithCalendarFormat:@"%x" locale:locale]
    [now descriptionWithCalendarFormat:@"%X" locale:locale]
    [now descriptionWithCalendarFormat:@"%c" locale:locale]
    結果と同じになるのだけど、これってやっぱりバグ?
    descriptionWithCalendarFormat:timeZone:locale: も同じみたい。

    システム環境設定で地域情報の日付のところを見ると日付の例として、
      2001年 1月 2日 火曜日
      2001年 1月 2日(火)
      01.1.2
    の3種類が表示されていると思いますが、これらの表示形式はどうすれば得ることができるのでしょうか。
    自分で作る?
    Carbon には DateString ってのがあるんだけど...

    >>> 2002.3.13 追加
    検証できないのですが、%a、%c の結果が異なるケースがあります。
    当初、サンプルプログラムを実行した結果は、確か、
      %a = 水
      %c = 2002年 3月 13日 水曜日 11:36:27 Asia/Tokyo
    のようになっていたはずなのですが、これが、
      %a = (水)
      %c = 2002年 3月 13日 (水曜日) 11:36:27 Asia/Tokyo
    となるようになってしまいました。
    直接の原因かどうかは定かではありませんが、システム環境設定の地域情報で日付の部分を触った後にそうなったように思われます。

    >>> 2002.4.12 追加
    NSCalendarDate は 1900年2月29日を認めます。1700年も1800年も同様です。
    この年はうるう年ではないため、2月29日は存在しないはずです。
    この結果、それ以前の日にちの曜日が正確ではありません。
    Terminal.app で cal コマンドを実行し、比較してみましょう。


開発環境
    Mac OS X 10.1.3
    December 2001 Mac OS X 10.1 Developer Tools


ダウンロード

back to index 戻る

>>> e'daisy <<<
mail button edaisy@mars.dti.ne.jp

Copyright © 2002 e'daisy. All rights reserved.