kintone ヘルプ

日時の形式やタイムゾーンを変える(DATE_FORMAT関数)

自動計算の計算式でDATE_FORMAT関数を使用すると、日時の形式やタイムゾーンを変更できます。日付や時刻をほかの文字列と結合する場合にも、DATE_FORMAT関数を使用します。DATE_FORMAT関数は、「文字列(1行)」フィールドでのみ使用できます。

DATE_FORMAT関数は、次のいずれかの書式で使用します。

  • DATE_FORMAT(計算式, "日時の形式", "タイムゾーン")
  • DATE_FORMAT(UNIX時刻, "日時の形式", "タイムゾーン")
関数の書式の項目
項目 説明
計算式

計算式には、次のフィールドを使用できます。

  • 日時
    日時が協定世界時1970年1月1日 午前0時(日本時刻午前9時)から協定世界時2050年1月1日 午前0時(日本時刻午前9時)までの場合のみ使用できます。
  • 日付
    日付が1970年1月1日から2286年11月20日までの場合のみ使用できます。
  • 時刻
  • 作成日時
  • 更新日時
  • 数値
  • 計算

フィールドは、フィールドコードで指定します。日時に時間を足し引きする場合、計算式には、時間を秒単位で指定します。たとえば、1時間は「3600」、または「60*60*1」のように指定します。1日であれば、「24*60*60*1」のように指定します。
例:日付 + (60 * 60 * 1)

計算式の結果が数値の場合、その数値はUNIX時刻として扱われます。UNIX時刻とは、1970年1月1日午前0時(協定世界時)からの経過秒数のことです。UNIXタイムスタンプとも呼ばれます。日時が2016年4月1日午前0時(協定世界時)の場合、UNIX時刻は「1459468800」です。
数値は、-1より大きく、10,000,000,000未満である必要があります。小数部は切り捨てられます。

UNIX時刻 10,000,000,000未満のUNIX時刻を指定します。
日時の形式 変更後の日時の形式を指定します。
書式については、次の項目を参照してください。
日時形式の書式
タイムゾーン

変更後のタイムゾーンのID、または「system」を指定します。「system」を指定すると、管理者が設定した標準のタイムゾーンが指定されます。
日付フィールド、または時刻フィールドのタイムゾーンは、協定世界時で固定です。これらのフィールドを計算式に使用する場合は、協定世界時のタイムゾーンID「Etc/GMT」を指定します。ほかのタイムゾーンを指定すると、計算結果が期待どおりになりません。

タイムゾーンごとのIDは、次のページを参照してください。
タイムゾーンの一覧(cybozu.com共通管理 ヘルプ)

サマータイムがあるタイムゾーンを指定した場合、計算結果にサマータイムが反映されます。
日時形式の書式

日時の形式は、次の表の書式指定子を使用して指定します。それぞれの書式指定子は、対応する文字列に置き換わります。

書式指定子 説明 2016年4月1日正午を変換した場合の文字列
YYYYまたはyyyy 西暦の年に置き換わります。 2016
MMMM レコードを編集したユーザーが設定している表示言語の月に置き換わります。 英語の場合:April
日本語の場合:4月
中国語の場合:四月
MMM レコードを編集したユーザーが設定している表示言語の、短縮形の月に置き換わります。 英語の場合:Apr
日本語の場合:4
中国語の場合:四月
MM ゼロ埋めありの月に置き換わります。 04
M ゼロ埋めなしの月に置き換わります。 4
dd ゼロ埋めありの日に置き換わります。 01
d ゼロ埋めなしの日に置き換わります。 1
a レコードを編集したユーザーが設定している表示言語の、「午前」または「午後」に置き換わります。 英語の場合:PM
日本語の場合:午後
中国語の場合:下午
KK 午前を0時から11時とした、12時間表記の時表示に置き換わります。ゼロ埋めされます。 00
K 午前を0時から11時とした、12時間表記の時表示に置き換わります。ゼロ埋めされません。 0
hh 午前を1時から12時とした、12時間表記の時表示に置き換わります。ゼロ埋めされます。 12
h 午前を1時から12時とした、12時間表記の時表示に置き換わります。ゼロ埋めされません。 12
HH 1日を0時から23時とした、24時間表記の時表示に置き換わります。ゼロ埋めされます。 12
H 1日を0時から23時とした、24時間表記の時表示に置き換わります。ゼロ埋めされません。 12
kk 1日を1時から24時とした、24時間表記の時表示に置き換わります。ゼロ埋めされます。 12
k 1日を1時から24時とした、24時間表記の時表示に置き換わります。ゼロ埋めされません。 12
mm ゼロ埋めありの分表示に置き換わります。 00
m ゼロ埋めなしの分表示に置き換わります。 0
ss ゼロ埋めありの秒表示に置き換わります。 00
s ゼロ埋めなしの秒表示に置き換わります。 0
Z UTC(協定世界時)との時差に置き換わります。hhmmの形式です。 +0900
ZZ UTC(協定世界時)との時差に置き換わります。hh:mmの形式です。 +09:00
ZZZ タイムゾーンのIDに置き換わります。 Asia/Tokyo
  • 日時の形式は、最大64文字で指定します。
  • 変換しない書式指定子は、シングルクォーテーション(')で囲みます。
    日時形式の例:D'a'te: d
    計算結果の例:Date: 1
  • 文字として表示するシングルクォーテーションは、2つ続けます。
    日時形式の例:''
    計算結果の例:'

計算式の例

DATE_FORMAT関数を使用した計算式の例を説明します。

フィールドAの形式を○○年○○月○○日に変える

計算式:
DATE_FORMAT(フィールドA, "YYYY年M月d日", "system")
フィールドAの値が「2016-04-01」の場合の計算結果:
2016年4月1日

フィールドAのタイムゾーンを太平洋標準時に変える

計算式:
DATE_FORMAT(フィールドA, "YYYY-MM-dd HH:mm", "America/Los_Angeles")
フィールドAの値が「2016-04-01 13:00」の場合の計算結果:
2016-03-31 21:00

フィールドAの文字列とレコード作成日時を結合する

計算式:
フィールドA & "-" & DATE_FORMAT(作成日時, "YYYYMMdd", "system")
フィールドAの値が「加藤 美咲」、レコードの作成日時が「2016-04-01 13:00」の場合の計算結果:
加藤 美咲-20160401