我在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”格式。
答案 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