一覧へ戻る
ITSM

ServiceNowで今日の日付を「MM-DD-YYYY」形式で取得する方法

ServiceNow開発者の皆さん、サーバーサイドスクリプト内で現在の日付を特定のフォーマット(例:MM-DD-YYYY)で取得・表示したいと思ったことはありませんか? ここでは、標準APIであるGlideDateTimeを活用して、今日の日付を簡単かつ正確にフォーマット変換する方法を解説します。

日付フォーマット変換の基本

  • ServiceNowのサーバーサイドスクリプトでは、日付・時刻の操作に**GlideDateTime API**を使用するのがベストプラクティスです
  • 取得した日付に対して getByFormat() メソッドを使うことで、任意の形式の文字列として出力できます

実際のスクリプト(実装例)

以下のスクリプトをBackground ScriptやBusiness Ruleなどで実行することで、フォーマットされた日付を取得できます。

// 1. 現在の日時を持つ GlideDateTime オブジェクトを作成
var gdt = new GlideDateTime();

// 2. 日付要素のみを抽出
var currentDate = gdt.getDate();

// 3. 指定したフォーマット(MM-dd-yyyy)で文字列に変換
var formattedDate = currentDate.getByFormat("MM-dd-yyyy");

// 結果を出力(例: 04-12-2026)
gs.info("今日の日付: " + formattedDate);


実装時の注意点(Tips)

  • 大文字・小文字の区別に注意
    • 月(Month)を指定する場合は必ず大文字の MM を使用してください(小文字の mm は「分(Minutes)」と認識されてしまいます)
  • タイムゾーンの考慮
    • GlideDateTime() はデフォルトで**UTC(協定世界時)**を基準として日時の計算を行います
    • 特定のユーザーのローカルタイムゾーンに合わせて日付を表示したい場合は、システムの要件やユーザー設定に応じた日時の調整が必要になる場合があります

まとめ

  • 日付のフォーマット操作には GlideDateTime クラスを使用するのが鉄則です
  • getByFormat("MM-dd-yyyy") メソッドを使うことで、簡単に希望の文字列形式へ変換できます
  • フォーマット指定時の「月(MM)」の大文字・小文字違いによるバグに注意しましょう

一言まとめ: 👉 GlideDateTime().getDate().getByFormat("MM-dd-yyyy") の1行で、日付フォーマット問題をサクッと解決!