代码之家  ›  专栏  ›  技术社区  ›  Koekiebox

从一种格式到另一种格式的Java日期解析

  •  2
  • Koekiebox  · 技术社区  · 16 年前

    有没有一种方法可以用类似于.Net的Java来确定日期格式?

    请考虑以下示例:

    private String reformatDateString(String dateParam){
        if(dateParam == null || dateParam.isEmpty()){
            return null;
        }
        try{
            SimpleDateFormat inDateFormat = new SimpleDateFormat("yyyy-MM-dd");
            Date fromDate = inDateFormat.parse(dateParam);
    
            SimpleDateFormat outDateForm = new SimpleDateFormat("yy-MM-dd");
            return outDateForm.format(fromDate);
        } catch(ParseException e){
            e.printStackTrace();
            return null;
        }
    }
    

    有没有更简单的方法让解析器知道 inDateFormat 而不是严格地提供这两种格式?

    2 回复  |  直到 16 年前
        1
  •  1
  •   Community Mohan Dere    9 年前

    我能想到的最好的办法就是 Date(String) 依赖静态方法的构造函数 Date.parse(String) . 它可能支持也可能不支持这些语法。

    来自javadoc of Date.parse(字符串)

    它接受许多语法;特别是,它认可IETF标准日期语法:“Sat,1995年8月12日13:30:00gmt”。它也理解美国大陆的时区缩写,但对于一般用途,应使用时区偏移:“1995年8月12日星期六13:30:00 GMT+0430”(格林尼治子午线以西4小时30分)。如果未指定时区,则假定为本地时区。GMT和UTC被认为是等价的。

    不幸的是 不赞成使用此方法,因为它显式地要求日期格式

    快速搜索发现其他问题表明 SimpleDateFormat 是解析日期的方法。见 A non-deprecated exact equivalent of Date(String s) in Java?

        2
  •  1
  •   Kevin D    16 年前

    我对你的问题很感兴趣,所以检查了JavaDoc的SimpleDateFormat、DateFormat、Date和Calendar,看看我是否能解决这个问题。

    除此之外。。。我不得不说不。至少据我所知。

    我会饶有兴趣地看这个问题。

    推荐文章