时间函数在 Cypher 25 中已弃用
这些函数可用于使用有效的 DateTimeFormatter 模式来格式化时间值。
此功能已弃用。请改用 Cypher 的 format() 函数。 |
格式化时间类型
您可以传入任何时间类型(Date、Time、DateTime、LocalTime、LocalDateTime、Duration)以及一个模式。请注意,如果模式对于您传入的值无效(例如,对于 Date 值使用 HH 表示小时,或对于 Time 值使用 DD 表示天),则会抛出异常。
apoc.temporal.format
RETURN apoc.temporal.format( date(), 'yyyy-MM-dd') AS output;
Cypher 的 format 函数
RETURN format( date(), 'yyyy-MM-dd') AS output;
| 输出 |
|---|
"2019-06-24" |
apoc.temporal.format
RETURN apoc.temporal.format( datetime(), 'yyyy-MM-dd HH:mm:ss.SSSSZ') AS output;
Cypher 的 format 函数
RETURN format( datetime(), 'yyyy-MM-dd HH:mm:ss.SSSSZ') AS output;
| 输出 |
|---|
"2019-06-24 13:56:56.8550+0000" |
apoc.temporal.format
RETURN apoc.temporal.format( localtime(), 'HH:mm:ss.SSSS') AS output;
Cypher 的 format 函数
RETURN format( localtime(), 'HH:mm:ss.SSSS') AS output;
| 输出 |
|---|
"13:57:31.9250" |
您也可以传入 ISO 日期时间模式,列表可在此处获取 ISO_DATE
例如:
apoc.temporal.format
RETURN apoc.temporal.format( date( { year: 2018, month: 12, day: 10 } ), 'date' ) as output;
Cypher 的 format 函数
RETURN format( date( { year: 2018, month: 12, day: 10 } ) ) as output;
| 输出 |
|---|
"2018-12-10" |
apoc.temporal.format
RETURN apoc.temporal.format( localdatetime( { year: 2018, month: 12, day: 10, hour: 12, minute: 34, second: 56, nanosecond: 123456789 } ), 'ISO_LOCAL_DATE_TIME' ) as output;
Cypher 的 format 函数
RETURN format( localdatetime( { year: 2018, month: 12, day: 10, hour: 12, minute: 34, second: 56, nanosecond: 123456789 } ) ) as output;
| 输出 |
|---|
"2018-12-10T12:34:56.123456789" |
apoc.temporal.format
RETURN apoc.temporal.format( date( { year: 2018, month: 12, day: 10 } ), 'ISO_DATE' ) as output;
Cypher 的 format 函数
RETURN format( date( { year: 2018, month: 12, day: 10 } ) ) as output;
| 输出 |
|---|
"2018-12-10" |
格式化时间间隔 (Durations)
当尝试格式化时间间隔时,该过程会尝试创建一个日期(01/01/0000)并加上该时间间隔。这允许您按照上述方法提供一致的格式。
apoc.temporal.formatDuration
RETURN apoc.temporal.format( duration.between( datetime.transaction(), datetime.realtime() ) , 'HH:mm:ss.SSSS') AS output;
Cypher 的 format 函数
RETURN format( duration.between( datetime.transaction(), datetime.realtime() ) , 'HH:mm:ss.SSSS') AS output;
| 输出 |
|---|
"00:00:00.0110" |
转换为 ZonedDateTime
您可以传入一个字符串作为第一个参数进行转换,传入一个模式作为第二个参数(默认值:'yyyy-MM-dd HH:mm:ss')以将字符串转换为 ZonedDateTime,并传入时区作为第三个参数(默认值:'UTC')。
例如,使用默认模式和时区
apoc.temporal.toZonedTemporal
RETURN apoc.temporal.toZonedTemporal('2015-12-23 23:59:59') AS output;
Cypher 的模式构造函数
RETURN datetime('2015-12-23 23:59:59', 'yyyy-MM-dd HH:mm:ss') AS output;
| 输出 |
|---|
"2015-12-23T23:59:59[UTC]" |
或
apoc.temporal.toZonedTemporal
RETURN apoc.temporal.toZonedTemporal('2012-12-23T23:59:59', "yyyy-MM-dd'T'HH:mm:ss", "Asia/Tokyo") AS output;
Cypher 的模式构造函数
RETURN datetime({datetime: localdatetime('2012-12-23T23:59:59'), timezone: "Asia/Tokyo"}) AS output;
| 输出 |
|---|
"2012-12-23T23:59:59[Asia/Tokyo]" |