[DATE_FORMAT函数]指定日期或时间的显示形式并显示

文章编号:040501

在计算公式中设置使用DATE_FORMAT函数后,会将日期与时间或日期等值转化为指定的日期与时间格式的字符串。
将日期或时间与其他字符串进行合并时,也可使用DATE_FORMAT函数。

DATE_FORMAT函数的语法

内容已复制
DATE_FORMAT(日期与时间, "日期与时间的格式", "时区")

DATE_FORMAT函数中,指定有第1参数(日期与时间)、第2参数(日期与时间的格式)、第3参数(时区)。

第1参数:日期与时间

第1参数中,指定想要指定显示形式的时间。
通过字段代码、UNIX时间或计算公式进行指定。

通过字段代码指定

可指定以下字段:

  • 日期与时间
  • 日期
  • 时间
  • 创建时间
  • 更新时间
  • 数值
  • 计算

指定数值字段或计算字段时,将把该字段的值作为UNIX时间进行处理。

通过UNIX时间指定

可直接指定UNIX时间。
可在-30610224000到253402300799之间的范围内指定UNIX时间。

指定计算公式

也可指定对日期与时间进行加减等计算后所得的日期与时间。

可使用以下运算符和函数。

  • +
  • -
  • *
  • /
  • ^
  • SUM函数

在计算公式中输入时间时,以秒为单位进行指定。
例如,1小时指定为“3600”或“60*60*1”。

以下示例为显示后一天日期的计算公式。

内容已复制
DATE_FORMAT(日期+24*60*60*1, "YYYY/MM/dd", "Etc/GMT")

第2参数:日期与时间的格式

第2参数中,指定日期与时间的格式。
日期与时间的格式通过以下方法指定。

  • 直接指定日期与时间的格式
  • 通过字段代码指定。

日期与时间的格式的指定方法,请参考“可指定的日期与时间的格式”。

通过字段代码指定时,可以指定以下字段。

  • 单行文本框
  • 多行文本框字段

想要在计算结果中显示在日期与时间格式中所输入的字符串时

想要在计算结果中显示在日期与时间格式中所输入的字符串时,请将要要显示的字符串括在单引号(')中。
例如,想要以“Date: 日期”这种格式来显示计算结果时,如下进行指定。

内容已复制
DATE_FORMAT(字段代码, "'DATE:' d", "Asia/Tokyo")

如想要将单引号(')在计算结果中显示为字符,请在日期与时间的格式中输入连续2个单引号“''”。
例如,想要以“'Date: 日期'”这种格式来显示计算结果时,如下进行指定。

内容已复制
DATE_FORMAT(字段代码, "'''DATE:' d''", "Asia/Tokyo")

第3参数:时区

第3参数中,指定时区。

第1参数指定了时间字段或日期字段时,指定为“Etc/GMT”(协调世界时的时区ID)。指定为“Etc/GMT”以外的格式时,可能会发生时间或日期的偏差。

内容已复制
DATE_FORMAT(时间, "hh:ss", "Etc/GMT")

指定了除此以外的字段或UNIX时间时,指定想要显示的时区。

内容已复制
DATE_FORMAT(日期与时间, "YYYY年M月d日", "Asia/Tokyo")

指定为“system”时,将应用cybozu.com共通管理中设置的时区(系统时区)。

夏令时的处理

如指定了有夏令时的时区,计算结果将显示为夏令时。

以下示例是指定了有夏令时的时区的计算公式。

内容已复制
DATE_FORMAT(日期与时间, "YYYY/MM/dd HH:mm ZZ", "America/Los_Angeles")

在此示例中,计算结果如下。

  • 协调世界时的“2019-01-01 00:00”将转换为“2018/12/31 16:00 - 08:00”。
  • 协调世界时的“2018-08-01 00:00”将转换为“2018/07/31 17:00 - 07:00”。

可使用DATE_FORMAT函数的字段

单行文本框字段可显示使用了DATE_FORMAT函数的计算结果。
请勾选单行文本框字段“设置”页面中的“自动计算”复选框,然后输入计算公式。

如在计算字段中直接显示DATE_FORMAT函数的结果,将报错。
可在函数中使用,例如,作为IF函数的条件表达式使用等。

可指定的日期与时间的格式

DATE_FORMAT函数第2参数中可指定的日期与时间的格式如下:

显示年的格式

格式 转换结果的示例 说明
YYYY 2020 转换为公历年份。也可使用小写的“yyyy”。

显示月的格式

格式 转换结果的示例 说明
MMMM April
4月
根据编辑记录的用户所设置的显示语言,转换为相应的月份。
MMM Apr
4月
根据编辑记录的用户所设置的显示语言,转换为相应的月份。英语则显示缩写。
MM 04 转换为有补零位的月份。
M 4 转换为无补零位的月份。

显示日期的格式

格式 转换结果的示例 说明
dd 01 转换为有补零位的日期。
d 1 转换为无补零位的日期。

显示时间的格式

格式 转换结果的示例 说明
a PM
午後
下午
根据编辑记录的用户所设置的显示语言,转换为“上午”或“下午”。
KK 00 0点到11点为上午,转换为12小时制的小时。有补零位。
转换“中午”时,将转换为“00”。
K 0 0点到11点为上午,转换为12小时制的小时。无补零位。
转换“中午”时,将转换为“0”。
hh 12 1点到12点为上午,转换为12小时制的小时。有补零位。
转换“中午”时,将转换为“12”。
h 12 1点到12点为上午,转换为12小时制的小时。无补零位。
转换“中午”时,将转换为“12”。
HH 00 0点到23点为1天,转换为24小时制的小时。有补零位。
转换“零点”时,将转换为“00”。
H 0 0点到23点为1天,转换为24小时制的小时。无补零位。
转换“零点”时,将转换为“0”。
kk 24 1点到24点为1天,转换为24小时制的小时。有补零位。
转换“零点”时,将转换为“24”。
k 24 1点到24点为1天,转换为24小时制的小时。无补零位。
转换“零点”时,将转换为“24”。

显示分钟的格式

格式 转换结果的示例 说明
mm 05 转换为有补零位的分钟。
m 5 转换为无补零位的分钟。

显示秒数的格式

在处理kintone日期与时间或时间的字段中,不会保存秒数。
在第1参数中指定字段代码后,秒数将作为0秒处理。

格式 转换结果的示例 说明
ss 01 转换为有补零位的秒数。
转换UNIX时间的“1695179101”(2023年9月20日12時5分1秒)时,将转换为“01”。
s 1 转换为无补零位的秒数。
转换UNIX时间的“1695179101”(2023年9月20日12時5分1秒)时,将转换为“1”。

显示时区的格式

格式 转换结果的示例 说明
Z +0800 将转换为在第3参数中指定的时区与UTC(协调世界时)的时差。以hhmm的格式显示。
ZZ +08:00 将转换为在第3参数中指定的时区与UTC(协调世界时)的时差。以hh:mm的格式显示。
ZZZ Asia/Shanghai 转换为第3参数中指定的时区的ID。

计算公式的示例

在计算公式中,请指定字段代码作为参数而非字段名称。
在以下示例中,字段名称和字段代码完全一致。

将日期字段的格式更改为“****年**月**日”

以下示例是将日期字段的格式更改为“****年**月**日”的计算公式。

内容已复制
DATE_FORMAT(日期, "YYYY年M月d日", "Etc/GMT")

在“日期”字段中输入“2020-04-01”后,将显示“2020年4月1日”。

更改日期与时间字段的格式和时区{#autocalc_date_format_4020}。

以下示例是将日期字段的格式更改为“YYYY-MM-dd HH:mm”,将时区设为太平洋时间的计算公式。

内容已复制
DATE_FORMAT(日期与时间, "YYYY-MM-dd HH:mm", "America/Los_Angeles")

如在“日期与时间”字段的值中输入日本时间“2020-04-01 13:00”,计算结果变为2020-03-31 21:00。

将姓名和记录创建时间合并显示

以下示例是以“姓名-记录创建时间”的格式显示姓名和记录创建时间的计算公式。
使用“&”将姓名、连字符(-)、记录创建时间合并。

内容已复制
姓名 & "-" & DATE_FORMAT(创建时间, "YYYYMMdd", "system")

截图:已合并姓名字段和记录创建时间

如在“姓名”字段的值中输入“田中 爱美”、在记录的创建时间中输入“2022-10-31 16:42”,计算结果为“田中 爱美-20221031”。

通过出生日期显示出生月份

以下示例是通过出生日期显示出生月份的计算公式。

内容已复制
DATE_FORMAT(出生日期, "MM", "Etc/GMT")

截图:在出生日期字段中显示出生月份

如在“出生日期”字段的值中输入“1969-12-31”,则显示“12”。

通过申请日计算30天后的试用截止日期

以下示例是通过申请日显示30天后的试用截止日期的计算公式。

内容已复制
DATE_FORMAT(申请日 + (60*60*24*30), "YYYY-MM-dd", "Etc/GMT")

截图:自动计算试用截止日期的图像

如在“申请”字段的值中输入“2021-07-01”,则显示30天后的“2021-07-31”。