Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Sv translation
languageja


Section


Column

日付と時刻オブジェクトの操作

高度な機能を使用する前に、日時情報をオブジェクトのいずれかに変換する必要があります:

  • LocalDate  - 日付のみを表す
  • LocalTime - 時刻のみ表す
  • DateTime - タイムゾーンを含む日付と時刻を表す


Column
width300px


Panel

このページで:

Table of Contents
maxLevel4
minLevel1




関数

説明

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(...) 関数を介してサポートされます。どちらの関数も、渡されたオブジェクトを変更し、変更されたインスタンスを返します。必須のpar​​tパラメーターは、日付/時刻値のどの部分を変更するかを指定します。インスタンスタイプに応じて、次の部分がサポートされます:

  • 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, 
hourOfDayminuteOfHoursecondOfMinute 
のいずれかを定義します。

日付と時刻のパターン

日付と時刻の形式は、日付と時刻のパターン文字列によって指定されます。日付と時刻のパターン文字列内で、「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;