更改日期类型和格式

时间:2014-03-22 04:32:23

标签: java date

我有以下方法,其中日期作为参数以字符串形式出现,参数名称为dateString,如下所示,最终日期转换并以java.sql.Date的形式存储这也是这种方法的返回类型。

public static java.sql.Date getSimpleDate11(String dateString) {

        if (dateString == null) {
            return null;
        }
        java.util.Date date = null;
        java.sql.Date sqlDate = null;

        try {

            DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
            df.setLenient(false);
            date = df.parse(dateString);
            sqlDate = new java.sql.Date(date.getTime());
        } catch (Exception pe) {
            throw new RuntimeException(
                    "The date entered is invalid or has incorrect format"
                            + dateString);
        }
        return sqlDate;
    }

问题:

我发现价值以2014-07-23(YYYY-MM-dd)格式出现,我希望返回日期(java.sql..Date)在23-07-14(dd-MM-) YY)。

2 个答案:

答案 0 :(得分:0)

这会生成您想要的日期格式 - 只需使用String作为返回类型而不是java.sql.Date

public static String getSimpleDate11(String dateString) {
    if (dateString == null) {
        return null;
    }

    DateFormat dfIn = new SimpleDateFormat("yyyy-MM-dd");
    DateFormat dfOut = new SimpleDateFormat("dd-MM-yy");

    try {
        Date date = dfIn.parse(dateString);
        return dfOut.format(date);
    } catch (ParseException e) {
        throw new RuntimeException(
                "The date entered is invalid or has incorrect format"
                        + dateString);
    }
}

答案 1 :(得分:0)

如果您需要将传入的“yyyy-MM-dd”String日期转换为java.sql.Date对象,则您已在问题中发布的代码中完成了所有操作。

java.sql.Date对象,就像java.util.Date一样,以某种格式存储您在内部提供的日期,作为程序员,您不必关心它。您只需知道日期存储在对象中,并且您可以在需要时将其从对象中取出。如果您对技术细节感兴趣,可以谷歌搜索它,但正如我所说,在您的情况下,这无关紧要。

每当您需要java.util.Date对象时,只需使用原始getSimpleDate11(...)函数中的对象。每当你需要String某个格式的日期表示时,比如“dd-MM-yy”,取java.util.Date并将其插入用你想要的输出格式初始化的DateFormat对象,就像我在DateFormat dfOut的第一个回答中所做的那样format(...) DateFormat方法可以同时处理java.util.Datejava.sql.Date个对象。