いいね!数
1
var afterOneMonth = @Adjust( @TextToTime("2014/03/01"), 0, 1, 0, 0, 0, 0 );
print( "3/1の1か月後=" + afterOneMonth ); とした場合、
HTTP JVM: 3/1の1か月後=14/03/29 0:00 となりました。
Notes/Dominoは9.0.1です。
下記のコードでは、「HTTP JVM: 3/1の1か月後=2014/04/01」が返ってきたので、こちらで回避しようとは思っていますが、他に良い方法があれば教えてください。
var dt:NotesDateTime = session.createDateTime("2014/03/01"); dt.adjustMonth(1); print( "3/1の1か月後=" + dt.getDateOnly() );
0
なんかとても気になったので、他のパターンでも試してみたところ、
2014/05/01、2014/07/01、2014/10/01、2014/12/01
の1ヶ月後の日付が誤っていて、
それぞれ、
2014/05/31、2014/07/31、2014/10/31、2014/12/31
となりました。
どうも、前月が30日以下の場合におかしくなるようです。
従来のノーツアプリケーションでの@Adjust関数ではこんなことは起きない(確認済み)ので、
XPages(JavaScript?)の@Adjust関数の不具合じゃないかなぁ?・・・と思ってます。
を
var afterOneMonth = @Adjust( @TextToTime("2014/03/01"), 0, 1, 0, 0, 0, 0, "[InLocalTime]" );
にすればよいということがわかりました。
まるで自作自演のようになってしまいましたが、良しとします。
回答できなくてゴメンなさい。(facebookのつぶやきもみました・・・)
ヘルプみてもよく分かりませんでしたが、
日本は、夏時間ということでしょうか。。。
よい勉強になりました。
[InLocalTime] キーワードを指定すると、夏時間に伴う時間調整が可能になります。夏時間を実施している地域でこのキーワードを指定した場合、実施期間中は自動的に時差が計算され、常に正確な時間になるように調整されます。このキーワードを指定しなかった場合、夏時間に関する時差処理は実行されません。キーワードを指定する場合は、括弧も含めて正確に指定する必要があります。ただし、大文字と小文字を区別する必要はありません。無効なキーワードは無視されます。