在 java 中,当使用带有模式的 SimpleDateFormat 时:
yyyy-MM-dd'T'HH:mm:ss.SSSZ
日期输出为:
"2002-02-01T18:18:42.703-0700"
在xquery中,使用xs:dateTime函数时,报错:
"Invalid lexical value [err:FORG0001]"
以上述日期为准。为了让 xquery 正确解析,日期需要如下所示:
"2002-02-01T18:18:42.703-07:00" - node the ':' 3rd position from end of string
它基于 ISO 8601,而 Java 日期基于 RFC 822 标准。
我希望能够轻松地在 Java 中指定时区,以便它以 xquery 想要的方式输出。
谢谢!
最佳答案
好的,链接到论坛帖子确实有帮助,谢谢。然而,我确实找到了一个更简单的解决方案,我将其包括在下面:
1) 使用Apache commons.lang java库
2) 使用以下 java 代码:
//NOTE: ZZ on end is not compatible with jdk, but allows for formatting
//dates like so (note the : 3rd from last spot, which is iso8601 standard):
//date=2008-10-03T10:29:40.046-04:00
private static final String DATE_FORMAT_8601 = "yyyy-MM-dd'T'HH:mm:ss.SSSZZ";
DateFormatUtils.format(new Date(), DATE_FORMAT_8601)
关于java日期格式与xquery xs :date format,不兼容如何解决?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/166600/