我想将时间转换为hh:mm,hh:mm:ss 它来自数据库(我的sql),形式为hh:mm:ss。 我尝试了以下代码,但我没有得到我想要的东西。
try {
s= HibernateUtil.currentSession();
tx=s.beginTransaction();
Query query = s.createQuery("select from Dailytimesheet dailytimesheet where dailytimesheet.IdDailyTimeSheet=6083 " );
for(Iterator it=query.iterate();it.hasNext();)
{
if(it.hasNext())
{
Dailytimesheet object=(Dailytimesheet)it.next();
String dt=object.getTimeFrom().toString();
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm");
long ms=0;
try {
ms = sdf.parse(dt).getTime();
}
catch (ParseException e) {e.printStackTrace();}
Time ts = new Time(ms);
out.println("<h2>"+ts+"</h2>");
感谢您的帮助。
答案 0 :(得分:7)
您需要使用DateFormat#format()
将java.util.Date
对象转换为表示所需格式的人类可读时间的java.lang.String
对象。您不能再将其转换回Date
(或其任何子类,如java.sql.Time
等),而不会丢失格式。格式未存储在Date
中。 Date
只知道自纪元以来的毫秒数。
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm");
java.util.Date date = object.getTimeFrom();
String string = sdf.format(date);
System.out.println(string);
答案 1 :(得分:4)
将HH:MM:SS转换为HH:MM最好由hhmmss.substring(0,5)
完成;-)或者,您可能更愿意在SELECT
语句中格式化数据。
答案 2 :(得分:0)
也许您可以在Dailytimesheet中添加一个名为getTimeWithoutSecondsFrom()的新方法,该方法复制日期对象,然后在返回日期之前将副本的秒数设置为零。
作为一个额外的好处,您可以完全避开SimpleDateFormat sdf位,代码将更容易阅读。
代码可能如下所示:
public Date getTimeWithoutSecondsFrom()
{
Date result = this.getTimeFrom();
result.setSeconds(0);
return(result);
}
答案 3 :(得分:0)
尝试java.util.Calendar类怎么样? 你可以这样做:
Calendar c = new Calendar();
Calendar.setDate(new Date(object.getTimeFrom().toString()));
String date = Calendar.HOUR + ":" + Calendar.MINUTE
或者我没有得到你的问题?
答案 4 :(得分:0)
您应该使用DateFormat
的格式方法。类似的东西:
out.println("<h2>"+sdf.format(ts)+"</h2>");
答案 5 :(得分:0)
try {
String strDate = object.getTimeFrom().toString();
SimpleDateFormat sdf1 = new SimpleDateFormat("HH:mm:ss");
SimpleDateFormat sdf2 = new SimpleDateFormat("HH:mm");
Date date = sdf1.parse(strDate);
System.out.println(sdf2.format(date));
} catch (ParseException e) {
e.printStackTrace();
}
答案 6 :(得分:0)
在这种情况下,我只会在SQL中进行转换。这是日期转换时的MySql reference。在你的情况下,它应该是这样的 -
Blockquote DATE_FORMAT('2007-10-04 22:23:00','%H:%i');
看起来您需要为从查询中获得的每一行进行转换,如果要检索许多记录,则由数据库引擎完成此操作可能更具成本效益。