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

SimpleDateFormat中的可选部分

养昊天
2023-03-14
问题内容

我正在读取可能带有或不带有时区调整的日期字符串:yyyyMMddHHmmsszyyyyMMddHHmmss。当字符串缺少区域时,我将其视为GMT。我看不到在中创建可选部分的任何方法SimpleDateFormat,但也许我缺少了一些东西。有没有办法用来完成此操作SimpleDateFormat,还是我应该写一个新的具体方法DateFormat来解决这个问题?


问题答案:

我将创建两个SimpleDateFormat,一个带有时区,一个没有时区。您可以查看String的长度以确定要使用的字符串。

听起来您需要一个DateFormat来委派两个不同的SDF。

DateFormat df = new DateFormat() {
    static final String FORMAT1 = "yyyyMMddHHmmss";
    static final String FORMAT2 = "yyyyMMddHHmmssz";
    final SimpleDateFormat sdf1 = new SimpleDateFormat(FORMAT1);
    final SimpleDateFormat sdf2 = new SimpleDateFormat(FORMAT2);
    @Override
    public StringBuffer format(Date date, StringBuffer toAppendTo, FieldPosition fieldPosition) {
        throw new UnsupportedOperationException();
    }

    @Override
    public Date parse(String source, ParsePosition pos) {
        if (source.length() - pos.getIndex() == FORMAT1.length())
            return sdf1.parse(source, pos);
        return sdf2.parse(source, pos);
    }
};
System.out.println(df.parse("20110102030405"));
System.out.println(df.parse("20110102030405PST"));


 类似资料:
  • java.text.SimpleDateFormat类根据给定的模式格式化日期。 它还用于解析字符串中的日期,其中字符串包含所提及格式的日期。 请参阅以下使用SimpleDateFormat类的示例。 IOTester.java import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.

  • 我尝试将字符串转换为日期。

  • 问题内容: 如何在显示时删除可选值上的文本而不必强制输入。 更新资料 当会话具有值时,其具有值: 问题答案: 您可以使用(null合并运算符)解开它,并提供默认值(如果为nil)

  • 问题内容: 谁能让我知道SimpleDateFormat类中可用的日期格式。 我已经通过api,但找不到满意的答案。我们非常感谢您的帮助。 问题答案: 日期和时间格式如下所述 SimpleDateFormat(Java Platform SE 7)-日期和时间模式 有可能是格式,你可以做可能数。例如- 或您可以混合并匹配字母以实现所需的图案。图案字母如下。 -时代代号(AD) 年(1996; 96

  • 有人能告诉我SimpleDateFormat类中可用的日期格式吗。 我看过api,但没有找到满意的答案。非常感谢您的帮助。

  • 问题内容: 我正在尝试使用解析日期时间字符串,但我一直收到不可解析的日期异常。 这是我尝试解析的日期格式: 这是我正在使用的代码: 返回此错误: 据我所知,这是使用SimpleDateFormat类的正确方法,但是我不精通Java,所以我可能会弄错。有人知道我的问题是什么吗? 问题答案: 时区应为GMT-08:00或-0800(如Madcore Tom所说)。请参阅Java文档。 在Java 7中