如何在DAO课程中获得预期的日期格式

时间:2018-03-27 15:33:35

标签: java jdbc

我在DB中有Timestamp格式,而我的setEventDate方法需要Date格式。 所以在我的DAO课程中有类似的东西:

                SimpleDateFormat sdf = new SimpleDateFormat("HH:mm");
                Timestamp dbDate = rows.getTimestamp("event_date");
                String dbDateToString = new SimpleDateFormat("HH:mm").format(dbDate);
                Date dbDateToDate = sdf.parse(dbDateToString);
                e.setEventDate(dbDateToDate);
                System.out.println(dbDateToString);
                System.out.println(dbDateToDate);

我从DB获取Timestamp,将其格式化为String,然后我将其解析为Date。我知道这听起来很奇怪。结果是: 弦乐队 - 17:08 日期 - Thu Jan 01 17:08:00 CET 1970

我不理解:/我需要“HH:mm”格式。

2 个答案:

答案 0 :(得分:2)

您正在从数据库中获取时间戳,您需要先更改 Date

Timestamp dbDate = rows.getTimestamp("event_date");
Date d = new Date(dbDate.getTime();  

现在您可以执行SimpleDateFormat格式设置

Timestamp dbDate = rows.getTimestamp("event_date");
Date d = new Date(dbDate.getTime());  
String dbDateOnlyHourAndMinutes = new SimpleDateFormat("HH:mm").format(dbDate);

你的小时和分钟只有“日期”。

答案 1 :(得分:0)

您说要解析日期,但在日期格式中,您只传递了小时(HH)和分钟(mm)格式。 从以下位置查看如何创建所需的日期格式:

What are the date formats available in SimpleDateFormat class?

https://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html

日期格式的示例是:dd / MM / yyyy。

如果我没有正确理解,请解释更多。 以下是将时间戳转换为格式的示例代码。 假设:所需的日期格式为MM:yyyy:

    Timestamp stamp = new Timestamp(System.currentTimeMillis());//your timestamp goes here
    Date date = new Date(stamp.getTime());
    System.out.println(date);//result = Tue Mar 27 18:50:09 EEST 2018
    SimpleDateFormat sdf = new SimpleDateFormat("MM:yyyy");
    System.out.println(sdf.format(date)); //result = 03:2018