Java getHours(), getMinutes() and getSeconds()

后端 未结 3 894
离开以前
离开以前 2020-12-02 16:29

As I know getHours(), getMinutes() and getSeconds() are all deprecated in Java and they are replaced with Calendar.HOUR_OF_DAY

相关标签:
3条回答
  • 2020-12-02 16:52

    Try this:

    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);
    

    Edit:

    hours, minutes, seconds
    

    above will be the hours, minutes and seconds after converting yourdate to System Timezone!

    0 讨论(0)
  • 2020-12-02 16:53

    Java 8

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

    Calendar

    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
    

    Joda Time

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

    Formatted

    Java 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));
    
    0 讨论(0)
  • 2020-12-02 17:12

    For a time difference, note that the calendar starts at 01.01.1970, 01:00, not at 00:00. If you're using java.util.Date and java.text.SimpleDateFormat, you will have to compensate for 1 hour:

    long start = System.currentTimeMillis();
    long end = start + (1*3600 + 23*60 + 45) * 1000 + 678; // 1 h 23 min 45.678 s
    Date timeDiff = new Date(end - start - 3600000); // compensate for 1h in millis
    SimpleDateFormat timeFormat = new SimpleDateFormat("H:mm:ss.SSS");
    System.out.println("Duration: " + timeFormat.format(timeDiff));
    

    This will print:

    Duration: 1:23:45.678

    0 讨论(0)
提交回复
热议问题