在java中从sql中删除秒

时间:2015-06-02 15:07:20

标签: java

我从sql数据库中获取数据,然后以图形的形式显示这些数据。我正在制作的图表基于时间的数据。我想摆脱秒,因为它对我的应用程序没用,占用空间。

我尝试使用日历对象从中删除秒数:

    ArrayList<Time> ints3 = new ArrayList<Time>();
    while ( rs.next() ){
        ints3.add(rs.getTime(ints.get(0)));
    }
    Calendar instance = Calendar.getInstance();
    instance.setTime(ints3.get(1));
    instance.clear(Calendar.SECOND);
    ints3.set(1, (Time) instance.getTime());

但这不起作用,因为您无法将java.util日期强制转换为sql时间。我怎样才能去除部分时间的秒数。

4 个答案:

答案 0 :(得分:4)

您需要的答案(即在不显示秒数的情况下象征日期)是使用DateFormat类。鉴于Time是java.sql.Time对象,首先将其转换为Date:

Date myDate=new Date(Time.getTime());
DateFormat df=new SimpleDateFormat("H:mm");
String myDateStr=df.format(myDate);

答案 1 :(得分:0)

我想对此发表评论,但我没有足够的声望点。我相信这个答案可以帮到你

https://stackoverflow.com/a/21250071/2987444

您可以使用Jodatimes,方法来添加/删除秒,然后转换回来

答案 2 :(得分:0)

但这不起作用,因为你无法将java.util日期转换为sql时间这很奇怪,因为java.sql.Time扩展了java.util.Date

您正在向下转发Calendar#getTime的结果,但这不起作用。相反,创建一个java.sql.Time的实例,并以毫秒为单位传递时间参数:

//ints3.set(1, (Time) instance.getTime())
ints3.set(1, new Time(instance.getTime().getTime()));

不过,将ArrayList<Time>更改为List<Date>java.util.Date)会更好

答案 3 :(得分:0)

你可以在Time类中使用setTime方法,它接受一个long值,你可以通过调用Calendar类的getTimeInMillis()来获得(在你的情况下清除秒部分之后)。但即使这样做,Time对象也会占用小时,分钟和秒部分(秒部分设置为零)。如果您不希望秒显示在显示中,那么您可以使用时间类的getHours和getMinutes方法的串联。