当前位置: 首页 > 面试题库 >

具有时区的W3C XML日期的Java SimpleDateFormat模式

寇开畅
2023-03-14
问题内容

我正在尝试解析W3C XML Schema日期,如下所示

"2012-05-15T07:08:09+03:00"

符合W3C XML Schema dateTime规范的ISO
8601版本。

在上述日期中,时区标识符为"+03:00",但是SimpleDateFormat显然没有任何模式可以表示它。

如果时区为"+0300",则Z(大写)适用,且SimpleDateFormat模式为

yyyy-MM-dd'T'HH:mm:ssZ

同样,如果时区为"GMT+03:00",则z(小写)适用,SimpleDateFormat模式为

yyyy-MM-dd'T'HH:mm:ssz

'Z'顺便说一下,大写也可以)。

因此,是否有一种SimpleDateFormat模式或变通办法可以在不预处理日期字符串的情况下表示上述日期?


问题答案:

怎么样:

DateFormat df = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ"){ 
    public Date parse(String source,ParsePosition pos) {    
        return super.parse(source.replaceFirst(":(?=[0-9]{2}$)",""),pos);
    }
};


 类似资料:
  • 我试图解析一个W3C XML模式日期,如下所示 它符合W3C XML Schema dateTime规范的ISO 8601版本。 (顺便说一句,大写的也可以工作)。 那么,是否有模式或变通方法来表示上述日期而不对日期字符串进行预处理呢?

  • 问题内容: 当日期中包含EDT / EST时,我们是否有任何API可以验证日期是否有效。我已经尝试过用Java Java SimpleDateFormat进行Joda,但是我无法解析日期。 下面是我正在获取“ 2017/09/25 16:18:15.099 -0400 EDT”的示例格式。 任何帮助表示赞赏。 谢谢,sk 问题答案: 您是否尝试阅读文档? 从以下文档中: 区域名称 :这将输出时区I

  • 我想以我用命令设置的格式传入日期。这是我到目前为止所尝试的。不理解无效月份错误。我在用10克。 数据库时区为UTC 我设置了会话时区和日期格式

  • 我正在尝试在中解析这些日期,然后获取表示形式。 我阅读了这个类似的答案,并创建了一个方法来解析上述日期并返回具有所需格式的: 然而,没有一个图案是匹配的。我这里缺少什么? 更新:在这两个日期中,我都收到了字符的异常。

  • 我正在与它的时区约会,我想把它转换成另一个时区,例如。我的日期是“3/15/2013 3:01:53 PM”,它位于时区“GMT-06:00”。我想在'GMT-05:00'时区转换这个。我有很多搜索,我不知道实际约会是如何运作。如何将时区应用到日期。我尝试过SimpleDateFormat、Calender和Offset。 它返回输出。我猜应该是,因为时间在'GMT-06:00'时区,所以应该是H

  • 问题内容: 是否可以指定log4j将使用的时区?我需要日志文件中的日期与应用程序的日期不同。log4j的使用。不幸的是,似乎没有一种通过模式字符串来控制时区的方法(有方法,但这无济于事)。 我查看了log4j的来源,并在中对其进行了实例化。不幸的是,没有一个简单的方法可以控制时区。 问题答案: 如果在类路径上使用Log4J extras JAR文件,则EnhancedPatternLayout类支