我想将默认时区从UTC更改为另一个时区。怎么可能?我试过了RETURN apoc.date.format(timestamp((,'ms', 'yyyy/MM/dd HH/mm/ss'(但它在本地主机上返回 UTC 时间。
示例答案:
RETURN apoc.date.format(timestamp(),'ms', 'yyyy/MM/dd HH:mm:ss',"Europe/Paris")
从源头获取的方法:
public String format(final
@Name("time") Long time
,@Name(value = "unit", defaultValue = "ms") String unit
,@Name(value = "format",defaultValue = DEFAULT_FORMAT) String format
,@Name(value = "timezone",defaultValue = "") String timezone)
{
return time == null ? null : parse(unit(unit).toMillis(time), format, timezone);
}
timezone
参数进一步传递给 Java TimeZone
类构造函数。从 Java 文档中关于它应该包含的内容 -
时区的 ID,可以是缩写(如"PST"(,也可以是完整的 名称(如"美国/Los_Angeles"(或自定义 ID(如"GMT-8:00"。 请注意,对缩写的支持是为了与 JDK 1.1.x 兼容 只应使用全名和全名。
本项目的源代码 -https://github.com/neo4j-contrib/neo4j-apoc-procedures/blob/3.3/src/main/java/apoc/date/Date.java
有关更多信息,请查看这篇关于 APOC 中日期的文章http://xclave.azurewebsites.net/2018/02/28/better-know-apoc-apoc-3-date-parse-format/