7

我有一个我需要的日期对象getTime()。问题是它总是显示00:00:00

SimpleDateFormat localDateFormat = new SimpleDateFormat("HH:mm:ss");
long date = Utils.getDateObject(DateObject).getTime();
String time = localDateFormat.format(date);

为什么时间总是'00:00:00'。我应该附加Time to my Date Object

4

3 回答 3

20

您应该将实际Date对象传递给format,而不是long

SimpleDateFormat localDateFormat = new SimpleDateFormat("HH:mm:ss");
String time = localDateFormat.format(Utils.getDateObject(DateObject));

假设Utils.getDateObject(DateObject)实际返回 a Date(您的问题暗示但未实际说明),那应该可以正常工作。

例如,这完美地工作:

import java.util.Date;
import java.text.SimpleDateFormat;

public class SDF {
    public static final void main(String[] args) {
        SimpleDateFormat localDateFormat = new SimpleDateFormat("HH:mm:ss");
        String time = localDateFormat.format(new Date());
        System.out.println(time);
    }
}

在下面回复您的评论:

谢谢TJ,但实际上我的时间仍然是00:00:00。

这意味着您的Date对象的小时、分钟和秒都为零,如下所示:

import java.util.Date;
import java.text.SimpleDateFormat;

public class SDF {
    public static final void main(String[] args) {
        SimpleDateFormat localDateFormat = new SimpleDateFormat("HH:mm:ss");
        String time = localDateFormat.format(new Date(2013, 4, 17)); // <== Only changed line (and using a deprecated API)
        System.out.println(time);
    }
}
于 2013-05-16T16:14:37.973 回答
3

例如,您可以使用下一个代码:

 public static int getNotesIndexByTime(Date aDate){
    int ret = 0;
    SimpleDateFormat localDateFormat = new SimpleDateFormat("HH");
    String sTime = localDateFormat.format(aDate);
    int iTime = Integer.parseInt(sTime);
    return iTime;// count of hours 0-23
 }
于 2015-12-13T19:13:44.547 回答
2

除了上述解决方案,如果您没有特定要求,您还可以使用日历类

Calendar cal1 =new GregorianCalendar() or Calendar.getInstance();
SimpleDateFormat date_format = new SimpleDateFormat("HH:mm:ss");
System.out.println(date_format.format(cal1.getTime()));
于 2013-05-16T16:18:30.317 回答