2021/04/27

SalesforceのDateクラスメソッドについてご紹介

 
  

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開発の際に役立つでしょう。]]>

ITエンジニアへのキャリアチェンジならキャリアチェンジアカデミー

この記事の監修者・著者

株式会社オープンアップITエンジニア
株式会社オープンアップITエンジニア
未経験からITエンジニアへのキャリアチェンジを支援するサイト「キャリアチェンジアカデミー」を運営。これまで4500人以上のITエンジニアを未経験から育成・排出してきました。
・AWS、salesforce、LPICの合計認定資格取得件数:2100以上(2023年6月時点)
・AWS Japan Certification Award 2020 ライジングスター of the Year 受賞

おすすめの動画

  • 【未経験からIT業界へ転職するなら】相談窓口とスキルの獲得はここで解決!IT転職が一気に有利に!【キャリアチェンジアカデミー】

  • 【費用一切不要】未経験からIT業界へ転職するならまずはここへ相談!【キャリアチェンジアカデミー】

  • 【何のエンジニアになれるのか?】未経験からITエンジニアを目指すとこんな道がある【キャリアチェンジアカデミー】