Java日期格式

时间:2012-09-15 17:15:22

标签: java jdbc date-format

我在MySQL服务器中有一个名为Caller_List的表。在这个表中,我有一个名为call_date的日期列,其数据类型为Date。我创建了一个网页,其中我有一个from_day的SELECT Box(存储所有第1天到第31天),一个月份的SELECT框(其中存储了1月到12月的所有月份名称),一年的SELECT框(存储2000年到2012年的所有年份。就像我也有一个to_day,to_month和to_year的SELECT框。

问题是当我使用 request.getParameter()方法从java servlet获取这些日,月和年时,它被提取为字符串数据类型并存储在名为from_date和to_date的变量中。我将from_day,from_month和from_year连接起来并存储在名为from_date的变量中。我也将to_day,to_month和to_year连接起来并存储在to_date中。由于MySQL理解这种格式,我将以年 - 月 - 日的格式连接它们。

然后,我传递以下查询以检索这两个from_date和两个日期之间的数据:

select caller_name,call_date 
from Caller_List 
where call_date>='"+from_date+"' and call_date<='"+to_date+"'

我也尝试过以下查询,但徒劳无功:

select caller_name,call_date 
from Caller_List 
where call_date between '"+from_date+"' and '"+to_date+"'

我也知道在执行查询之前需要将from_date和to_date转换为日期格式。但我是java的新手,我不知道怎么做。此外,我希望日期格式为年 - 月 - 日。我想用日期显示时间,请帮帮我!

1 个答案:

答案 0 :(得分:0)

如果您只想知道如何在Java中将String解析为Date,则可以简单地使用SimpleDateFormat类。

final DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
try {
    final Date fromDate = dateFormat.parse(from_date);
} catch (ParseException e) {
    // ...
}

假设您的from_date字符串看起来像2012-09-16

如果你想显示一个有时间的日期。您也可以使用SimpleDateFormat

final DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
try {
    final String displayDate = dateFormat.format(new Date());
} catch (ParseException e) {
    // ...
}

displayDate应该看起来像2012-09-16 20:13:25

还有一件事,你可以在MySQL中比较字符串类型和日期类型。只需确保您的日期字符串具有“yyyy-mm-dd hh:mm:ss”模式。当然,您应该使用preparedStatement。