Dateクラスとは?
今回の記事は、SalesforceのDateクラスに関するご紹介です。
Dateクラスのメソッドは利用したことがあるでしょうか。簡単ではありますが、Dateクラスの概要と使用例についてご説明します。
概要
Dateクラスとは、Salesforceの開発言語Apexで利用できる日付型に関するメソッドを持つクラスです。
この記事では、Dateクラスのメソッドについて簡単にご説明していきます。利用される場面の多いクラスですので、よく理解していきましょう。
メソッドの種類
Dateクラスの日付型に関するメソッドをご紹介します。
以下はDateクラスが持つメソッドの一覧です。
・addDays(additionalDays)
・addMonths(additionalMonths)
・addYears(additionalYears)
・day()
・dayOfYear()
・daysBetween(secondDate)
・daysInMonth(year, month)
・format()
・isLeapYear(year)
・isSameDay(dateToCompare)
・month()
・monthsBetween(secondDate)
・newInstance(year, month, day)
・parse(stringDate)
・today()
・toStartOfMonth()
・toStartOfWeek()
・valueOf(stringDate)
・valueOf(fieldValue)
・year()
※詳細は下記Salesforce公式のDateクラスページをご参照ください。
なにができる?
Dateクラスのメソッドを使うことで、本日日付を返したり、2つの日付間の日数を算出するなど、日付型項目に対する操作が可能になります。
Salesforceでは標準機能の1つとして、日付型の項目を設けることができます。
例えば、取引先オブジェクトに「登録日」という日付型の項目があるとします。この「登録日」から本日日付までの日数を知りたい場合に、Dateクラスの「daysBetween()」メソッドを利用し、算出することができます。
※上記の例では、数式項目を用いることで算出可能ですが、ここではDateクラスを利用する例としてご紹介しました。
Dateクラスのメソッドを使ってみよう
前項でご紹介したDateクラスのメソッドの中から、代表的なものをいくつかご紹介します。
SalesforceのDateクラスに含まれるメソッドは数が多いので、今回ご紹介するメソッドだけも使い方を覚えるようにしましょう。
よく使われるメソッドの使い方
Dateクラスでよく利用される便利なメソッドとその使い方についてご説明します。
①today()
このメソッドは、現在の日付を現在のユーザのタイムゾーンで返します。
Date testDate = Date.today();
testDateにはこの処理が実行された当日の日付が入ります。
②newInstance()
このメソッドは、(年, 月, 日)で指定した日付を構築します。
Date testDate = Date.newInstance(2020, 1, 22);
System.debug(testDate); // 2020-01-22 00:00:00
この例では、()内で指定した年月日の「2020/01/22」が生成されます。
※()内で指定する日付はいずれも数値型となります。
③format()
このメソッドは、現在のログインユーザのロケールを使用して、dateを文字列として返します。
Date testDate = Date.newInstance(2020, 1, 22);
String strDate = testDate.format();
System.debug(testDate); // 2020-01-22 00:00:00
System.debug(strDate); // 2020/01/22
フォーマット前後の表記はコード内のコメント部分に記載の通りです。
Dateクラスのformat()メソッドでは、フォーマット内容は指定できません。フォーマット内容まで指定したいような場合は、Datetimeクラスのformat()メソッドを使うようにしましょう。こちらはより細かくフォーマット内容を指定することができます。
目的に合わせて使い分けると良いでしょう。
④year()
指定の日付の「年」部分を返します。
Date testDate = Date.newInstance(2020, 1, 22);
System.debug(testDate.year()); // 2020
こちらは年の他に、月(month()メソッド)、日(day()メソッド)もあります。
⑤addyears(additonalYears)
指定した追加年数を日付に加算します。
Date testDate = Date.newInstance(2020, 1, 22);
Date newDate = testDate.addyears(2);
System.debug(newDate); // 2022-01-22
こちらも年の他に、月(addmonths()メソッド)、日(addDays()メソッド)があります。
※Datetimeクラスの詳細については、下記のSalesforce公式ページをご参照ください。Dateクラスは日付型、Datetimeクラスは日付時間型に対するものですので、混同しないよう注意しましょう。
Dateクラスを活用しよう
今回はSalesforceの開発言語Apexで利用できるDateクラスのメソッドについてご紹介しました。
日付型の項目はApex処理で日付項目を操作したり、入力された日付項目から会計年度を計算したりと利用される場面が多いものです。よく利用されるメソッドをいくつか覚えておくだけでもApex開発の際に役立つでしょう。]]>