时间函数
这些函数可以使用有效的 DateTimeFormatter
模式来格式化时间值。
格式化时间类型
您可以传入任何时间类型(Date、Time、DateTime、LocalTime、LocalDateTime、Duration)以及模式。请注意,如果您传入的值与模式不匹配(例如,对 Date 值使用小时的 HH
模式,或对 Time 值使用日的 DD
模式),将会抛出异常。
格式化为日期
RETURN apoc.temporal.format( date(), 'YYYY-MM-dd') AS output;
输出 |
---|
"2019-06-24" |
格式化为日期和时间
RETURN apoc.temporal.format( datetime(), 'YYYY-MM-dd HH:mm:ss.SSSSZ') AS output;
输出 |
---|
"2019-06-24 13:56:56.8550+0000" |
格式化为时间
RETURN apoc.temporal.format( localtime(), 'HH:mm:ss.SSSS') AS output;
输出 |
---|
"13:57:31.9250" |
您也可以传入 ISO 日期时间模式,完整列表可在此处查看 ISO_DATE
例如
格式化为日期
RETURN apoc.temporal.format( date( { year: 2018, month: 12, day: 10 } ), 'date' ) as output;
输出 |
---|
"2018-12-10" |
格式化为日期和时间
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;
输出 |
---|
"2018-12-10T12:34:56.123456789" |
格式化为日期
RETURN apoc.temporal.format( date( { year: 2018, month: 12, day: 10 } ), 'ISO_DATE' ) as output;
输出 |
---|
"2018-12-10" |
格式化持续时间
尝试格式化持续时间时,该过程会尝试创建一个日期 (01/01/0000) 并添加持续时间。这使您可以提供上述一致的格式。
格式化为持续时间
RETURN apoc.temporal.format( duration.between( datetime.transaction(), datetime.realtime() ) , 'HH:mm:ss.SSSS') AS output;
输出 |
---|
"00:00:00.0110" |
转换为带时区的日期时间
您可以传入一个要转换的字符串作为第一个参数,一个将字符串转换为 ZonedDateTime
的模式作为第二个参数(默认值:'yyyy-MM-dd HH:mm:ss'),以及时区作为第三个参数(默认值:'UTC')。
例如,使用默认模式和时区
RETURN apoc.temporal.toZonedTemporal('2015-12-23 23:59:59') AS output;
输出 |
---|
"2015-12-23T23:59:59[UTC]" |
或
RETURN apoc.temporal.toZonedTemporal('2012-12-23T23:59:59', "yyyy-MM-dd'T'HH:mm:ss", "Asia/Tokyo") AS output;
输出 |
---|
"2012-12-23T23:59:59[Asia/Tokyo]" |