このページは福井県立大学の田中求之が2006年1月まで運用していた Mac のサーバ運用に関する会議室 「Web Scripter's Meeting」の記録です。情報が古くなっている可能性がありますのでご注意ください。

日付データの取り出し方

発言者:天野@NIHS・大阪
( Date Wednesday, January 08, 1997 13:40:09 )


いつもお世話になっております。例によって質問ですが、アップルスクリプト
を使って日付に関するデータを取り出すとき、date  等のコマンドを用いると
日付&時刻コントロールパネルの、「長い日付表示」の方のデータが抽出され
ますが、「短い日付表示」を取り出す方法はないのでしょうか?よろしくお願
いいたします。

田中求之 さんからのコメント
( Wednesday, January 08, 1997 14:33:59 )

>短い日付表示

97.01.08 あるいは 01/08/97 といった日付表示のことですよね?

osax を使う方法でよいのであれば、Tanaka's osax を使ってもらえば、変換は
可能です。

Tanaka's osax に DateToDateList というコマンドがあります。これを用いると
AppleScript の date 型のデータ( date object )をリスト形式に変換します。

set myDate to (current date)
set myDate to DateToDateList myDate

  --> myDate = {1997, 1, 8, 14, 24, 6, 4}

あるいは asStr を true にして

set myDate to (current date)
set myDate to DateToDateList myDate with asStr

  --> myDate = {"97", "01", "08", "14", "25", "59", "04"}

このリストは、年、月、日、時、分、秒、曜日 を並べたものです。曜日は日曜日を
1 として何番目の曜日かを示す数字になっています。

で、このリストから、必要な部分を抜いて、表示用のデータを作成するわけです。たとえば
ファイルの更新日を 97.01.08 形式の日付で得るためのスクリプトは以下のようになります

set myFile to choose file
set myDate to (getFileModDate myFile)
set myDate to DateToDateList myDate with asStr
set myDate to (item 1 of myDate) & "." & (item 2 of myDate) & "." & (item 3 of myDate)

天野@NIHS・大阪 さんからのコメント
( Wednesday, January 08, 1997 15:38:43 )

田中さん、相変わらずの素早い御対応ありがとうございます。実は現状でも
Tanaka's osax を利用させていただき、似たようなスクリプトで処理をして
いるのですが(ただ、バージョンアップを怠っていたため ^^; DateToDateList
というコマンドが出来ているのは知りませんでしたが)、ヒトケタの月の頭
にゼロを入れる(長い日付表示にはこの設定がないんですよね)だけの為に
こんなことしてるのがアホらしい気がしてお尋ねしたしだいです。ご回答を
参考にさせていただきもう少しスクリプトをすっきりさせたいと思います。
ありがとうございました、今後とも宜しくお願いいたします。