日期和时间转换
日期和时间可能以各种格式和配置出现,通常需要为数据存储系统、报告、网页等进行转换。APOC 日期函数允许用户对这些 Long 或 String 值进行操作,以满足不同类型的格式要求。
如果您需要将日期对象类型转换为其他格式,请参阅时间函数。 |
日期和时间格式注意事项
-
默认格式为
yyyy-MM-dd HH:mm:ss
-
如果格式模式未指定时区,格式化器会将日期视为属于 UTC 时区
-
如果指定了时区模式,将从日期字符串中提取时区,否则将报告错误
-
to/fromSeconds
时间戳值采用 POSIX (Unix 时间) 系统,即时间戳表示自 1970 年 1 月 1 日星期四 00:00:00 UTC 起经过的秒数 -
支持的完整格式列表在 SimpleDateFormat JavaDoc 中描述
过程概览
下表描述了可用的过程
限定名 | 类型 |
---|---|
apoc.date.add |
|
apoc.date.convert |
|
apoc.date.convertFormat |
|
apoc.date.currentTimestamp |
|
apoc.date.field |
|
apoc.date.fields |
|
apoc.date.format |
|
apoc.date.fromISO8601 |
|
apoc.date.parse |
|
apoc.date.systemTimezone |
|
apoc.date.toISO8601 |
|
apoc.date.toYears |
|
apoc.date.add
此函数可以向纪元格式的日期添加或减去时间单位值。
签名 |
---|
|
它接受以下参数
名称 | 类型 | 描述 | 可能的值 |
---|---|---|---|
时间 |
INTEGER |
要操作的日期值(纪元整数格式) |
|
单位 |
STRING |
输入值的特异性 |
|
addValue |
INTEGER |
要从时间中添加或减去的数字 |
|
addUnit |
STRING |
要添加或减去的单位类型 |
|
apoc.date.convert
此函数将一种时间单位的日期值转换为不同时间单位的日期值。
签名 |
---|
|
它接受以下参数
名称 | 类型 | 描述 | 可能的值 |
---|---|---|---|
时间 |
INTEGER |
要操作的日期值(纪元整数格式) |
|
单位 |
STRING |
输入值的特异性 |
|
toUnit |
STRING |
输出值的单位类型 |
|
apoc.date.convertFormat
此函数将一种格式的日期字符串转换为不同格式的日期字符串。
签名 |
---|
|
它接受以下参数
名称 | 类型 | 描述 | 可能的值 |
---|---|---|---|
temporal |
STRING |
需要转换的日期字符串 |
|
currentFormat |
STRING |
输入日期字符串的格式 |
有关完整列表,请参阅 Java 文档(在“格式化和解析模式”下) |
convertTo |
STRING |
输出时间类型的格式 |
apoc.date.currentTimestamp
此函数返回系统在调用时的当前时间戳。它提供 System.currentTimeMillis()
,该函数在整个事务执行过程中都是最新的,并且与 Cypher 的 timestamp()
函数不同,后者在事务中不会更新。
签名 |
---|
|
它不接受任何参数。
apoc.date.field
此函数从纪元格式的日期中提取一个字段的值。
签名 |
---|
|
Neo4j 3.4 引入了时间数据类型,这是在 Neo4j 中表示日期的推荐方式。可以使用 Cypher 的 但是,如果您仍然需要转换时间戳格式,此过程提供了该功能。 |
它接受以下参数
名称 | 类型 | 描述 | 可能的值 |
---|---|---|---|
时间 |
INTEGER |
要操作的日期值(纪元整数格式) |
|
单位 |
STRING |
输入值的特异性 |
|
时区 |
STRING |
结果日期字符串的时区 |
可以指定为 GMT 或数据库(文本)名称,如时区列表所示 |
apoc.date.fields
此函数从纪元格式的日期中提取所有字段的值,并返回列和映射表示形式。
签名 |
---|
|
在 3.4 版本中,Neo4j 引入了时间数据类型,这是在 Neo4j 中表示日期的推荐方式。可以使用 Cypher 的 但是,如果您仍然需要转换时间戳格式,此过程提供了该功能。 |
它接受以下参数
名称 | 类型 | 描述 | 可能的值 |
---|---|---|---|
日期 |
STRING |
需要格式化的日期字符串 |
采用 ISO8601 标准格式的日期字符串 |
模式 |
STRING |
输入日期字符串的格式 |
有关完整列表,请参阅 Java 文档(在“格式化和解析模式”下) |
apoc.date.format
此函数将纪元格式的日期转换为指定格式的日期字符串。
签名 |
---|
|
它接受以下参数
名称 | 类型 | 描述 | 可能的值 |
---|---|---|---|
时间 |
INTEGER |
要操作的日期值(纪元整数格式) |
|
单位 |
STRING |
输入值的特异性 |
|
格式 |
STRING |
输出日期字符串的格式 |
|
时区 |
STRING |
结果日期字符串的时区 |
可以指定为 GMT 或数据库(文本)名称,如时区列表所示 |
apoc.date.fromISO8601
此函数将 ISO8601 标准格式的日期字符串转换为纪元格式的日期。
签名 |
---|
|
它接受以下参数
名称 | 类型 | 描述 | 可能的值 |
---|---|---|---|
时间 |
STRING |
需要格式化的日期字符串 |
采用 ISO8601 标准格式的日期字符串 |
日期字符串时区仅接受 GMT+00:00 格式的 |
apoc.date.parse
此函数解析一种格式的日期字符串,并将其转换为指定时间单位的纪元格式日期。
签名 |
---|
|
它接受以下参数
名称 | 类型 | 描述 | 可能的值 |
---|---|---|---|
时间 |
STRING |
需要格式化的日期字符串 |
采用 ISO8601 标准格式的日期字符串 |
单位 |
STRING |
输出日期值所需的特异性 |
|
格式 |
STRING |
要转换的日期字符串的格式 |
有关完整列表,请参阅 Java 文档(在“格式化和解析模式”下) |
时区 |
STRING |
结果日期字符串的时区 |
可以指定为 GMT 或数据库(文本)名称,如时区列表所示 |
apoc.date.toISO8601
此函数将纪元格式的日期转换为 ISO8601 标准格式的日期字符串。
签名 |
---|
|
它接受以下参数
名称 | 类型 | 描述 | 可能的值 |
---|---|---|---|
时间 |
INTEGER |
要操作的日期值(纪元整数格式) |
|
单位 |
STRING |
输入值的特异性 |
|
apoc.date.toYears
-
此函数可以进行几种不同的转换。
-
将纪元毫秒格式的日期转换为自 Unix 纪元时间
1970 年 1 月 1 日
以来经过的年数。
签名 |
---|
|
apoc.date.toYears(value :: ANY, format = yyyy-MM-dd HH:mm:ss :: STRING) :: FLOAT
名称 | 类型 | 描述 | 可能的值 |
---|---|---|---|
表 10. 配置 - 纪元到年份 |
INTEGER |
值 |
要操作的日期值(纪元毫秒整数格式) |
名称 | 类型 | 描述 | 可能的值 |
---|---|---|---|
表 10. 配置 - 纪元到年份 |
STRING |
需要格式化的日期字符串 |
采用 ISO8601 标准格式的日期字符串 |
格式 |
STRING |
要转换的日期字符串的格式 |
有关完整列表,请参阅 Java 文档(在“格式化和解析模式”下) |