我从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时间。我怎样才能去除部分时间的秒数。
答案 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方法的串联。