Date関数

Date関数は、特定の日付からの月情報の取得や日付に対する時間の追加などのアクションをDateオブジェクトに対して実行します。

次の表では、「変換」でサポートしているDate関数について説明します。これらと同じ関数が変換APIリファレンス(Groovydoc)で説明されています。

日付書式はJavaのSimpleDateFormatクラスに準拠しています。SimpleDateFormatクラスの詳細は、http://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.htmlを参照してください。

ユーザー関数 戻り値のデータ型 説明
addTime(Date attribute, Integer timeToAdd, String timeUnit) Date Dateオブジェクトに時間を追加します。使用する時間単位は、次の定数のいずれかである必要があります。
  • MILLISECONDS
  • SECONDS
  • MINUTES
  • HOURS
  • DAYS
  • WEEKS
  • MONTHS
  • YEARS
diffDates(Date firstDate, Date secondDate, String timeUnit, Boolean precisionFlag) Double 2つの日付間の差異を特定の時間単位でlongとして計算します。時間単位は、次の定数のいずれかである必要があります。
  • MILLISECONDS
  • SECONDS
  • MINUTES
  • HOURS
  • DAYS
  • WEEKS
  • MONTHS
  • YEARS

オプションのprecisionFlagパラメータは、ミリ秒の精度で差異を区別するかどうかを指定します。使用しない場合、デフォルトはfalseです。

getDayOfMonth(Date attribute, String timeZone, String locale) Integer Dateの日の値を返します。タイムゾーンおよびロケールをオプションのパラメータとして指定できます。デフォルト値はそれぞれ、nullおよび"en"です。
getDayOfWeek(Date attribute, String timeZone, String locale) Integer Dateの曜日の値を返します。タイムゾーンおよびロケールをオプションのパラメータとして指定できます。デフォルト値はそれぞれ、nullおよび"en"です。
getDayOfYear(Date attribute, String timeZone, String locale) Integer Dateの年間通算日の値を返します。タイムゾーンおよびロケールをオプションのパラメータとして指定できます。デフォルト値はそれぞれ、nullおよび"en"です。
getHour(Date attribute, String timeZone, String locale) Integer Dateの時間の値を返します。タイムゾーンおよびロケールをオプションのパラメータとして指定できます。デフォルト値はそれぞれ、nullおよび"en"です。
getMilliSecond(Date attribute, String timeZone, String locale) Long 指定したタイムゾーンおよびロケールのパラメータに基づいて、Dateのミリ秒の値を返します。デフォルトは、それぞれnullおよび"en"です。
getMinute(Date attribute, String timeZone, String lcoale) Integer Dateの分の値を返します。タイムゾーンおよびロケールをオプションのパラメータとして指定できます。デフォルト値はそれぞれ、nullおよび"en"です。
getMonth(Date attribute, String timeZone, String locale) Integer Dateの月の値を返します。タイムゾーンおよびロケールをオプションのパラメータとして指定できます。デフォルト値はそれぞれ、nullおよび"en"です。
getSeconds(Date attribute, String timeZone, String locale) Long Dateの秒の値を返します。タイムゾーンおよびロケールをオプションのパラメータとして指定できます。デフォルト値はそれぞれ、nullおよび"en"です。
getYear(Date attribute, String timeZone, String locale) Integer Dateの年の値を返します。タイムゾーンおよびロケールをオプションのパラメータとして指定できます。デフォルト値はそれぞれ、nullおよび"en"です。
isDate(String attribute, String dateFormat) Boolean Stringが指定した書式の有効なDate値であるかどうかを確認します。
toDate(Long epochDate) Date LongをDateオブジェクトに変換します。
toDate(String attribute, String dateFormat)、String timeZone、String locale Date 特定の日付書式を使用してStringをDateオブジェクトに変換します。タイムゾーンおよびロケールをオプションのパラメータとして指定できます。デフォルト値はそれぞれ、nullおよび"en"です。無効な日付Stringの場合、nullを返します。
today(String timeZone, String locale) Date 現在の日付を戻します。タイムゾーンおよびロケールをオプションのパラメータとして指定できます。デフォルト値はそれぞれ、nullおよび"en"です。
toString(Date date, String dateFormat, String locale) String DateをStringに変換します。Dateの書式およびロケールを指定する必要があります。これらはそれぞれ、DATEFORMAT_DEFAULTおよび"en"にデフォルト設定されます。
truncateDate(Date date, String timeUnit) Date 指定された時間単位に基づいてDateを切り捨てます。使用する時間単位は、次の定数のいずれかである必要があります。
  • MILLISECONDS
  • SECONDS
  • MINUTES
  • HOURS
  • DAYS
  • WEEKS
  • MONTHS
  • YEARS

たとえば、truncateDate((toDate("2015/03/31 21:34:56")),MONTHS)は、2015-03-01 00:00:00 UTCを返します。

Date定数

Date定数により、Date関数に渡すことができるデフォルトのDate書式および時間単位を定義します。

次の表では、「変換」でサポートしているDate定数について説明します。

定数名 データ型 説明
DATEFORMAT_DEFAULT Object デフォルトの日付書式を定義します: "yyyy/MM/dd HH:mm:ss"
DAYS Object 日の定数を定義します: "days"
HOURS Object 時の定数を定義します: "hours"
MILLISECONDS Object ミリ秒の定数を定義します: "milliseconds"
MINUTES Object 分の定数を定義します: "minutes"
MONTHS Object 月の定数を定義します: "months"
SECONDS Object 秒の定数を定義します: "seconds"
WEEKS Object 週の定数を定義します: "weeks"
YEARS Object 年の定数を定義します: "years"

Dateの抽出例

この例では、年月を抽出します。
toString(pickup_datetime, 'yyyy-MM')

Dateの計算例

次のコードでは、diffDates関数を使用して、pickup_datetimeまでの日数を計算します。

diffDates(today(),pickup_datetime,DAYS,true)

today()は現在日付を取得し、pickup_datetimeは取得日、DAYSは結果を返す時間単位を指定し、そしてtrueは差異を正確に計算することを指定します。

toDateの例

この例では、最初に文字列を長整数に変換するためにtoLong関数を使用し、その結果をtoDate関数への入力として使用します。
toDate(toLong("1240596879"))
次に示すのは、toDate関数の日付書式のいくつかのサンプルです。
toDate(date_String,'EEE MM/DD/YYYY hh:mm:ss a')
toDate(date_String,'EEE MM/DD/YYYY hh:mm:ss a','EST')
toDate(date_String,'EEE MM/DD/YYYY hh:mm:ss a','Etc/GMT-10')
toDate(date_String,'EEE MM/DD/YYYY hh:mm:ss a','Etc/Universal','en'))
toDate(date_String,'EEE MM/DD/YYYY hh:mm:ss a','GMT0','de'))
toDate(date_String,DATEFORMAT_DEFAULT)
toDate(date_String,DATEFORMAT_DEFAULT,'EST')
toDate(date_String,DATEFORMAT_DEFAULT,'Etc/GMT-10')