相关疑难解决方法(0)

Java 6中对ISO 8601格式的通用支持

Java 7 SimpleDateFormat通过字符X(而不是大写或小写Z)在ISO 8601格式的类中引入了支持.在Java 6中支持这样的格式需要预处理,因此最好的方法是问题.

这种新格式是Z(大写Z)的超集,另外还有两种变体:

  1. "分钟"字段是可选的(即,2位而不是4位时区有效)
  2. 冒号字符(':')可用于将2位"小时"字段与2位"分钟"字段分开.

因此,正如人们可以从Java 7文档中SimpleDateFormat看到的那样,以下3种格式现在是有效的(而不仅仅是ZJava 6中涵盖的第二种格式),当然,等效:

  1. -08
  2. -0800
  3. -08:00

正如之前关于支持这种"扩展"时区格式的特殊情况的问题所讨论的那样,始终使用':'作为分隔符,将Java 7功能向后移植到Java 6中的最佳方法是将类子SimpleDateformat类化并覆盖其parse()方法,即:

public Date parse(String date, ParsePosition pos)
{
    String iso = ... // Replace the X with a Z timezone string, using a regex

    if (iso.length() == date.length())
    {
        return null; // Not an ISO 8601 date
    }

    Date parsed …
Run Code Online (Sandbox Code Playgroud)

java regex date simpledateformat java-6

8
推荐指数
2
解决办法
8442
查看次数

Java日期偏移格式问题?

我的日期格式是yyyy-MM-dd'T'HH:mm:ss.SSSZ,生成日期:

2013-10-08T12:14:39.721+0100
Run Code Online (Sandbox Code Playgroud)

但我需要的日期是:

2013-10-08T12:14:39.721+01:00
Run Code Online (Sandbox Code Playgroud)

什么日期格式将生成冒号的偏移量?

java

3
推荐指数
1
解决办法
5626
查看次数

标签 统计

java ×2

date ×1

java-6 ×1

regex ×1

simpledateformat ×1