Section |
---|
Column |
---|
日付と時刻オブジェクトの操作高度な機能を使用する前に、日時情報をオブジェクトのいずれかに変換する必要があります: - LocalDate - 日付のみを表す
- LocalTime - 時刻のみ表す
- DateTime - タイムゾーンを含む日付と時刻を表す
|
|
関数 | 説明 |
---|
LocalDate date(String value)
| 渡された値をLocalDateオブジェクトに変換します。値は次のいずれかの形式でなければなりません: dd.MM.yyyy , dd/MM/yyyy , yyyy-MM-dd 。例: Code Block |
---|
def a = date('2011-01-01')
def b = date(value(1))
|
| LocalDate date(Partial value) | 渡された部分値をLocalDateオブジェクトに変換します。部分値は、firstValue('L_DATE') または lastValue('L_DATE') メソッドから値を返します。例: Code Block |
---|
def a = date(firstValue('L_DATE'))
def b = date(lastValue('L_DATE'))
|
| LocalDate date(long value) | 渡されたタイムスタンプ値をLocalDateオブジェクトに変換します。値は有効なタイムスタンプ形式でなければなりません。例: Code Block |
---|
def a = date(1396348391)
def b = date(value(1))
|
| LocalDate date(long value, String timezone) | date (long値) と同じですが、タイムゾーンがあります。有効なタイムゾーンIDは次の通りです: 1. オフセット、例 +01:00, -09:00 など 2. ID、例 Europe/London など | LocalDate date(String value, String format)
| date (String値) と同じように動作し、さらにvalueパラメーターの形式を指定できます。日付と時間セクションのパターンを参照してください。 | LocalTime time(String value)
| 渡された値をLocalTimeオブジェクトに変換します。値は HH:mm:ss フォーマットである必要があります。例: Code Block |
---|
def a = time('11:00:23')
def b = time(value(1))
|
| LocalTime time(Partial value) | 渡された部分値をLocalTimeオブジェクトに変換します。部分値は、firstValue( 'L_TIME') または lastValue('L_TIME') メソッドから値を返します。例: Code Block |
---|
def a = time(firstValue('L_TIME'))
def b = time(lastValue('L_TIME')) |
| LocalTime time(long value) | 渡されたタイムスタンプ値をLocalTimeオブジェクトに変換します。値は有効なタイムスタンプ形式である必要があります。例:
def a = time( 1396348391 )
def b = time(value( 1 ))
|
| LocalTime time(long value) | Time (long値) と同じですが、タイムゾーンがあります。有効なタイムゾーンIDは次の通りです: 1. オフセット、例 +01:00, -09:00 など 2. ID, 例 Europe/London など | LocalTime time(String value, String format)
| Time (String値) と同じように機能しますが、さらにvalueパラメーターの形式を指定できます。日付と時刻セクションのパターンを参照してください。 | DateTime datetime(String value)
| 渡された値をDateTimeオブジェクトに変換します。値は、dd.MM.yyyy HH:mm:ss , dd/MM/yyyy HH:mm:ss , yyyy-MM-dd HH:mm:ss のいずれかの形式である必要があります。例: Code Block |
---|
def a = datetime('2011-01-01') //creates date time object with 2011-01-01 00:00:00 value
def b = datetime('2011-01-01 23:32') //creates date time object with 2011-01-01 23:32:00 value
def c = datetime('11:21:33') //creates the date time object with 1970-01-01 11:21:33 value
|
| DateTime datetime(Partial value) | 渡された部分値をDateTimeオブジェクトに変換します。部分値は、firstValue( 'L_DATETIME') または lastValue('L_DATETIME') メソッドから値を返します。例:
Code Block |
---|
def a = datetime(firstValue('L_DATETIME'))
def b = datetime(lastValue('L_DATETIME'))
|
| DateTime datetime(long value) | 渡されたタイムスタンプ値をDateTimeオブジェクトに変換します。値は有効なタイムスタンプである必要があります。例: Code Block |
---|
def a = datetime(1396349028) //creates date time object with 2011-01-01 00:00:00 value
|
| DateTime datetime(long value, String timezone) | datetime (long値) と同じですが、タイムゾーンがあります。有効なタイムゾーンIDは次の通りです: 1. オフセット、例 +01:00, -09:00 など 2. ID, 例 Europe/London など | DateTime datetime(String value, String format) | datetime (String値) と同じように機能しますが、さらにvalueパラメーターの形式を指定できます。日付と時刻セクションのパターンを参照してください。 | long timestamp(DateTime value) | 渡されたDateTime値をタイムスタンプに変換します。 | DateTime decorateWithTimezone(datetime value) | UTCの値をユーザーのタイムゾーンのdatetimeに変換します。 |
日時が適切なオブジェクトに変換された後は、以下の機能を使用できます: 日時の一部を取得 関数 | 説明 |
---|
Integer year(LocalDate date)
| LocalDateオブジェクトから年を抽出します。例: Code Block |
---|
def a = date('2011-01-01')
return year(a);//returns 2011
|
| Integer month(LocalDate date)
| LocalDateオブジェクトから月を抽出します。 | Integer week(LocalDate date)
| LocalDateオブジェクトから週を抽出します。 | Integer dayOfWeek(LocalDate date)
| LocalDateオブジェクトから曜日を抽出します。 | Integer dayOfMonth(LocalDate date)
| LocalDateオブジェクトから月日を抽出します。 | Integer dayOfYear(LocalDate date)
| LocalDateオブジェクトから年の日を抽出します | Integer hourOfDay(LocalTime time)
| LocalDateオブジェクトから日の時間を抽出します。 | Integer hourOfDay(DateTime dt)
| DateTimeオブジェクトから日の時間を抽出します。 | Integer minuteOfHour(LocalTime date)
| LocalTimeオブジェクトから時間の分を抽出します。 | Integer minuteOfHour(DateTime date)
| DateTimeオブジェクトから時間の分を抽出します。 | Integer minuteOfDay(DateTime date)
| DateTimeオブジェクトから日の分を抽出します。 | Integer secondOfMinute(LocalTime date)
| LocalTimeオブジェクトから分の秒を抽出します。 | Integer secondOfMinute(DateTime date)
| DateTimeオブジェクトから分の秒を抽出します。 | Integer secondOfDay(DateTime date)
| DateTimeオブジェクトから日の秒を抽出します。 |
2つのインスタンスを比較 Info |
---|
基本的な比較は、==, =<, <, =>, >, != 演算子を使用することにより可能です。 |
関数 | 説明 |
---|
boolean isAfter(LocalTime t1, LocalTime t2)
| t1 が t2 のインスタンスの後であるかどうかを判断します。 | boolean isAfter(LocalDate d1, LocalDate d2)
| d1 が d2 のインスタンスの後であるかどうかを判断します。 | boolean isAfter(DateTime dt1, DateTime dt2)
| dt1 が dt2 のインスタンスの後であるかどうかを判断します。 | boolean isBefore(LocalTime t1, LocalTime t2)
| t1 が t2 のインスタンスの前であるかどうかを判断します。 | boolean isBefore(LocalDate d1, LocalDate d2)
| d1 が d2 のインスタンスの前であるかどうかを判断します。 | boolean isBefore(DateTime dt1, DateTime dt2)
| dt1 が dt2 のインスタンスの前であるかどうかを判断します。 | boolean isEqual(LocalTime t1, LocalTime t2)
| t1 が t2 のインスタンスと等しいかどうかを判断します。 | boolean isEqual(LocalDate d1, LocalDate d2)
| d1 が d2 のインスタンスと等しいかどうかを判断します。 | boolean isEqual(DateTime dt1, DateTime dt2)
| dt1 が dt2 のインスタンスと等しいかどうかを判断します。 | Integer secondsBetween(LocalTime t1, LocalTime t2)
| 指定した2つの LocalTime インスタンス間の秒数を返します。例: Code Block |
---|
//returns number of seconds between 00:30:32 and time value in column 1.
secondsBetween(time('00:30:32'), time(value(1))
|
| Integer secondsBetween(DateTime dt1, DateTime dt2)
| 特定の2つの DateTime のインスタンス間の秒数を返します。 | Integer minutesBetween(LocalTime t1, LocalTime t2)
| 特定の2つの LocalTime のインスタンス間の分数を返します。 | Integer minutesBetween(DateTime dt1, DateTime dt2)
| 特定の2つの DateTime のインスタンス間の分数を返します。 | Integer hoursBetween(LocalTime t1, LocalTime t2)
| 特定の2つの LocalTime のインスタンス間の時間数を返します。 | Integer hoursBetween(DateTime dt1, DateTime dt2)
| 特定の2つの DateTime のインスタンス間の時間数を返します。 | Integer daysBetween(LocalDate d1, LocalDate d2)
| 特定の2つの LocalDate のインスタンス間の日数を返します。 例: Code Block |
---|
//returns number of days between 2011-01-01 and value in column 1.
daysBetween(date('2011-01-01'), date(value(1))
//returns number of days between the actual date and value in current column
daysBetween(date(actualDate()), date(value())
|
| Integer daysBetween(LocalDate d1, LocalDate d2, int[])
| 指定された2つの LocalDate インスタンス間の日数を返します。曜日は番号で参照されます: 1は月曜日、7は日曜日。 例:
daysBetween(dateValue( 'L_DATE_FROM' ),dateValue( 'L_DATE_TO' ), 6 , 7 )
//return number of days between 2 date values. Excludes Saturdays and Sundays from the calculation. |
| Integer daysBetween(DateTime dt1, DateTime dt2)
| 特定の2つの DateTime のインスタンス間の日数を返します。 | Integer weeksBetween(LocalDate d1, LocalDate d2)
| 特定の2つの LocalDate のインスタンス間の週数を返します。 | Integer weeksBetween(DateTime dt1, DateTime dt2)
| 特定の2つの DateTime のインスタンス間の週数を返します。 | Integer monthsBetween(LocalDate d1, LocalDate d2)
| 特定の2つの LocalDate のインスタンス間の月数を返します。 | Integer monthsBetween(DateTime dt1, DateTime dt2)
| 特定の2つの DateTime のインスタンス間の月数を返します。 | Integer yearsBetween(LocalDate d1, LocalDate d2)
| 特定の2つの LocalDate のインスタンス間の年数を返します。 | Integer yearsBetween(DateTime dt1, DateTime dt2)
| 特定の2つの DateTime のインスタンス間の年数を返します。 |
日時の操作DateTime、LocalDate、LocalTime オブジェクトを使用した操作は、plus(...) および minus(...) 関数を介してサポートされます。どちらの関数も、渡されたオブジェクトを変更し、変更されたインスタンスを返します。必須のpartパラメーターは、日付/時刻値のどの部分を変更するかを指定します。インスタンスタイプに応じて、次の部分がサポートされます: LocalDate と DateTime - 日、週、月、年LocalTime と DateTime - 時、分、秒
関数 | 説明 |
---|
DateTime plus(LocalTime time, String part, int count)
| 渡された LocalTime 値に指定された部分の量を追加します。 | DateTime plus(LocalDate date, String part, int count)
| 渡された LocalDate 値に指定された部分の量を追加します。 | DateTime plus(DateTime dt, String part, int count)
| 渡された DateTime 値に指定された部分の量を追加します。 | DateTime minus(LocalTime time, String part, int count)
| 渡された LocalTime 値から指定された部分の量を減算します。 | DateTime minus(LocalDate date, String part, int count)
| 渡された LocalDate 値から指定された部分の量を減算します。 | DateTime minus(DateTime dt, String part, int count)
| 渡された DateTime 値から指定された部分の量を減算します。 |
日時出力のフォーマット 関数 | 説明 |
---|
String toString(DateTime dt, String format)
| 渡された書式で DateTime オブジェクトを出力します。 | String toString(LocalDate date, String format)
| 渡された書式で LocalDate オブジェクトを出力します。 | String toString(LocalTime time, String format)
| 渡された書式で LocalTime オブジェクトを出力します。 |
文字列ベースの日時関数 基本的な日時関数は、日時を文字列として使用します。 関数 | 説明 |
---|
String actualDate()
| 現在の日付を dd.MM.yyyy 形式で返します。この関数は、時間列のないデータソースから定期的にインポートする現在の時刻を誘導する場合にも適しています。 | String actualDate(String format)
| カスタマイズ可能な出力日付形式で拡張された actulaDate() 関数のように機能します。日付と時刻セクションのパターンを参照してください。例: Code Block |
---|
return actualDate('yyyy-MM-dd');//returns date as 2011-12-15 |
| String actualTime()
| 現在の時刻を HH:mm:ss 形式で返します。この関数は、時間列のないデータソースから定期的にインポートする現在の日付を誘導する場合にも適しています。 | String actualTime(String format)
| カスタマイズ可能な出力時間形式で拡張された actulaTime() 関数のように機能します。日付と時刻セクションのパターンを参照してください。例: Code Block |
---|
return actualDate('HH:mm:ss');//returns time as 13:44:22 string |
| String actualDateTime() | 現在の日付を dd.MM.yyyy HH:mm:ss 形式で返します。この関数は、時間列のないデータソースから定期的にインポートするために現在の時刻を誘導する場合にも適しています。 | String actualDateTime(String format) | カスタマイズ可能な出力時間形式で拡張された actulaDateTime() 関数のように機能します。日付と時刻セクションのパターンを参照してください。例: Code Block |
---|
return actualDateTime('yyyy-MM-dd HH:mm:ss.SSS');//returns time as 2011-12-15 13:44:22.124 string |
| String datetimePart(String value, String part)
| 渡された日付または時刻の文字列の一部を返します。この文字列は、yyyy-MM-dd HH:mm:ss, yyyy-MM-dd の形式である必要があります。パーツパラメータは、 year , monthOfYear , weekOfYear , dayOfMonth , dayOfWeek , dayOfYear ,
hourOfDay , minuteOfHour , secondOfMinute のいずれかを定義します。 |
日付と時刻のパターン日付と時刻の形式は、日付と時刻のパターン文字列によって指定されます。日付と時刻のパターン文字列内で、「A」から「Z」および「a」から「z」までの引用符で囲まれていない文字は、日付または時刻の文字列のコンポーネントを表すパターン文字として解釈されます。解釈を避けるために、テキストは一重引用符(')を使用して引用できます。 "''" は一重引用符を表します。他のすべての文字は解釈されません; それらは、フォーマット中に出力文字列にコピーされるか、解析中に入力文字列と照合されます。 次のパターン文字が定義されています(「A」から「Z」、「a」から「z」までの他のすべての文字は予約されています): 文字 | 日付または時刻コンポーネント | 例 |
---|
G | 時代指定子 | AD | y | 年 | 1996; 96 | M | 年の月 | July; Jul; 07 | w | 年の週 | 27 | W | 月の週 | 2 | D | 年の日 | 189 | d | 月の日 | 10 | F | 月の週の日 | 2 | E | 曜日 | Tuesday; Tue | a | am/pmマーカー | PM | H | 日の時間(0-23) | 0 | k | 日の時間(1-24) | 4 | K | am/pm の時間(0-11) | 0 | h | am/pm の時間(1-12) | 12 | m | 時間の分 | 30 | s | 分の秒 | 55 | S | ミリ秒 | 978 | z | タイムゾーン | Pacific Standard Time; PST; GMT-08:00 | Z | RFC 822 タイムゾーン | -0800 |
二つの日付を比較する別の方法次の例を考えてみましょう: 2つの日付列を含むインポートがあり、これら2つの日付の日差が必要です。両方の日付列には、yyyy/MM/dd 形式の日付が含まれています。 Code Block |
---|
def a1 = split(value(1), '/');
def date1 = [a1[0] as int, a1[1] as int, a1[2] as int] as Date;
def a2 = split(value(2), '/');
def date2 = [a2[0] as int, a2[1] as int, a2[2] as int] as Date;
return date2 - date1;
|
|