Java getHours()、 getMinutes() 和 getSeconds()

2022-08-31 12:04:58

据我所知,在 Java 中都已弃用,它们被替换为 、 、 。getHours()getMinutes()getSeconds()Calendar.HOUR_OF_DAYCalendar.MINUTECalendar.SECOND

这些实际上将返回该特定时刻的小时,分钟和秒。但是,我想从 Date 变量中检索小时和分钟。例如

假设从数据库中检索到的时间是

time = Thu Jan 01 09:12:18 CET 1970;

int hours = time.getHours();
int minutes = time.getMinutes();
int seconds = time.getSeconds();

通过检索小时,分钟和秒,我得到

hours = 9
minutes = 12
seconds = 18

那么,如何使用日历来实现此功能?虽然 已被弃用,但它仍然有效。我仍然想知道是否有其他选择。getHours()


答案 1

试试这个:

Calendar calendar = Calendar.getInstance();
calendar.setTime(yourdate);
int hours = calendar.get(Calendar.HOUR_OF_DAY);
int minutes = calendar.get(Calendar.MINUTE);
int seconds = calendar.get(Calendar.SECOND);

编辑:

hours, minutes, seconds

以上将是转换为系统时区的小时,分钟和秒!yourdate


答案 2

爪哇 8

    System.out.println(LocalDateTime.now().getHour());       // 7
    System.out.println(LocalDateTime.now().getMinute());     // 45
    System.out.println(LocalDateTime.now().getSecond());     // 32

日历

System.out.println(Calendar.getInstance().get(Calendar.HOUR_OF_DAY));  // 7 
System.out.println(Calendar.getInstance().get(Calendar.MINUTE));       // 45
System.out.println(Calendar.getInstance().get(Calendar.SECOND));       // 32

乔达时间

    System.out.println(new DateTime().getHourOfDay());      // 7
    System.out.println(new DateTime().getMinuteOfHour());   // 45
    System.out.println(new DateTime().getSecondOfMinute()); // 32

格式 化

爪哇 8

    // 07:48:55.056
    System.out.println(ZonedDateTime.now().format(DateTimeFormatter.ISO_LOCAL_TIME));
    // 7:48:55
    System.out.println(LocalTime.now().getHour() + ":" + LocalTime.now().getMinute() + ":" + LocalTime.now().getSecond());

    // 07:48:55
    System.out.println(new SimpleDateFormat("HH:mm:ss").format(Calendar.getInstance().getTime()));

    // 074855
    System.out.println(new SimpleDateFormat("HHmmss").format(Calendar.getInstance().getTime()));

    // 07:48:55 
    System.out.println(new Date().toString().substring(11, 20));