当ブログに掲載しているサンプルは、すべて利用者の自己責任という形でお願いします。
ただし、明らかな不具合がある場合、ご連絡いただければ、訂正記事を出します。
また、こちらのサンプルは、別のサイト等への公開、転載は一切禁止しています。
どうしてもと言う場合は、筆者にあらかじめご連絡ください。

テクてく Lotus 技術者 Slack に参加しよう!

2010年1月27日水曜日

LocalTimeとLSLocalTimeの違い

なかなかネタが見つからずに苦戦している筆者です。
困ったときは、日付ネタということで、今日は日付ネタです。

さて、その前に、今日もLotus Notes/Domino認知度、再向上のためのランキング協力をお願いします
にほんブログ村 IT技術ブログへ
ポンッと押してください。

ノーツのクラスにNotesDateTimeというクラスがあります。
この中に、現在の日時を返すLocalTimeと、LSLocalTimeというプロパティがあります。
違いは、ヘルプによると、StringもしくはDate形式で返すかというだけですが、実際のところはどうでしょう?

以下のようなサンプルを作ってみました。

Sub Click(Source As Button)
 Dim hiduke As NotesDateTime
 Dim sLocalTime23 As String
 Dim sLSLocalTime23 As String
 Dim sLocalTime00 As String
 Dim sLSLocalTime00 As String
 Dim sLocalTime01 As String
 Dim sLSLocalTime01 As String
 
 Set hiduke = New NotesDateTime( "2010/01/27 23:00:00" )
 
 '23:00の時のプロパティ取得
 sLocalTime23 = hiduke.LocalTime
 sLSLocalTime23 = hiduke.LSLocalTime
 
 '00:00の時のプロパティ取得
 Call hiduke.AdjustHour( 1 )
 sLocalTime00 = hiduke.LocalTime
 sLSLocalTime00 = hiduke.LSLocalTime
 
 '01:00の時のプロパティ取得
 Call hiduke.AdjustHour( 1 )
 sLocalTime01 = hiduke.LocalTime
 sLSLocalTime01 = hiduke.LSLocalTime
 
 Msgbox _
 "23:00の時 " & Chr$(9) & sLocalTime23 & Chr$(10) & _
 Chr$(9) & Chr$(9) & sLSLocalTime23 & Chr$(10) & _
 "03:00の時 " & Chr$(9) & sLocalTime00 & Chr$(10) & _
 Chr$(9) & Chr$(9) & sLSLocalTime00 & Chr$(10) & _
 "01:00の時 " & Chr$(9) & sLocalTime01 & Chr$(10) & _
 Chr$(9) & Chr$(9) & sLSLocalTime01, _
 0, _
 "各時間ごとの表示"
End Sub

上記のプログラムを実行したときの結果です。


上の行がLocalTimeで、下の行がLSLocalTimeを表示したものです。
まず、気がつくのが、LocalTimeは一番後ろにタイムゾーンが表示されています。

さらに、なぜか、00:00:00の時は、LSLocalTimeは時刻が表示されません。
ヘルプには何も書いてありません。仕様と言えば仕様なんでしょうが、何となく腑に落ちません。LSLocalTimeで日時を扱う際は十分に注意しましょう。

ちなみに、Format( hiduke.LSLocalTime, "yyyy/mm/dd hh:nn:ss" )とすれば、00:00でも時刻は表示されます。ただし、この場合は、String型に型変換されます。


【PR】ノーツ/ドミノに関するお問い合わせは下記まで【PR】
Lotus Notes/Domino カスタマイズとセキュリティ強化 - 株式会社エフ

0 件のコメント: