AppleScript から iCal の終日イベントを作成した時に、時間帯の扱いについてバグがある模様。iCal の環境設定の「時間帯サポートを有効にする」を変更しても、同じ結果となった。
実験環境
- Mac OS X 10.5.6
- iCal 3.0.6
- スクリプトエディタ 2.2.1
- AppleScript 2.0.1
- 時間帯 Tokyo - Japan
テストコード
次のようなスクリプトを動かしてみると、(a) だけ昨日のイベントとなる。
tell application "iCal"
tell calendar "テスト"
set d to current date
set hours of d to 8
set minutes of d to 0
copy d to d8 -- 今日の 08:00
set hours of d to 9
copy d to d9 -- 今日の 09:00
set hours of d to 10
copy d to d10 -- 今日の 10:00
-- (a) 本日 8:00 - 9:00 の終日イベントを作る
make new event at end with properties {summary:"テスト終日 (a)", start date:d8, end date:d9, allday event:true}
-- (b) 本日 9:00 - 10:00 の終日イベントを作る
make new event at end with properties {summary:"テスト終日 (b)", start date:d9, end date:d10, allday event:true}
-- (c) 本日 8:00 - 9:00 の通常イベントを作る
make new event at end with properties {summary:"テスト通常 (c)", start date:d8, end date:d9, allday event:false}
-- (d) 本日 9:00 - 10:00 の通常イベントを作る
make new event at end with properties {summary:"テスト通常 (d)", start date:d9, end date:d10, allday event:false}
end tell
end tell
実行結果
この通り。多分、バグでしょう。
対策
今後、バグが直る可能性もあるので、対策としては、終日イベントを作るときは、開始時間を正午にしておく、ということでよさそうです…。
iCal 4.0.3 (Build 1388) では修正されていることを確認しました。(2010-09-05 追記)
0 件のコメント:
コメントを投稿