我有约会销售时间为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
有什么建议吗?
答案 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