Oracle Date Format更改为yyyy-MM-dd hh:mm:ss

时间:2014-05-13 10:05:38

标签: java oracle date timestamp

我有约会销售时间为2/25/14 22:06我想将它存储在yyyy-MM-dd hh:mm:ss的oracle表中。所以我写了以下java代码

Date saleTime = sale.getSaleTime();
            logger.info("DateTime is "+saleTime);

            SimpleDateFormat formatter=new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
            Date saleTimeNorm = formatter.parse(formatter.format(saleTime));

            logger.info("DateTime after Formating "+saleTimeNorm);
            Timestamp oracleDate = new Timestamp(saleTimeNorm.getTime());

            logger.info("New Format Inserting :"+oracleDate);
                    sale.setSaleTime(oracleDate);

但这似乎是在给予:0014-02-25 22:06:00.0

有什么建议吗?

2 个答案:

答案 0 :(得分:0)

您的getSaleTime()方法以某种方式关注" 14"作为一个四位数的年份,并返回14年。

执行getSaleTime()后,您已经有了一个Date变量;将它转换为不同的输出格式并重新解析结果不需要(也没有用)。从调用format()和parse()获得的日期与您开始使用的日期相同。

您可以使用getTime()getSaleTime()的调用结果上创建时间戳。一旦您更改getSaleTime()以便在正确的年份返回日期,这将是正确的。

答案 1 :(得分:0)

sale.getSaleTime()方法中的某些内容必定是错误的。因为以下代码可以根据需要运行。

    Date saleTime = Calendar.getInstance().getTime();
    SimpleDateFormat formatter=new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
    Date saleTimeNorm = formatter.parse(formatter.format(saleTime));
    Timestamp oracleDate = new Timestamp(saleTimeNorm.getTime());
    System.out.println(oracleDate);
//2014-05-13 03:58:53.0