Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Java

Các trường thời gian (Temporal Fields) liên quan đến giờ trong Java

Một trường thời gian (temporal field) là một trường của ngày-giờ, chẳng hạn như tháng-trong-năm hoặc giờ-trong-phút. Các trường này được biểu diễn bởi interface TemporalField và lớp ChronoField triển khai interface này.

Dưới đây là danh sách các trường thời gian liên quan đến giờ được hỗ trợ bởi lớp ChronoField:

Trường Mô tả
CLOCK_HOUR_OF_AMPMTrường này biểu diễn giờ theo đồng hồ của ngày (am/pm).
AMPM_OF_DAYTrường này biểu diễn am/pm của ngày.
CLOCK_HOUR_OF_DAYTrường này biểu diễn giờ theo đồng hồ của ngày.
HOUR_OF_AMPMTrường này biểu diễn giờ của ngày (am/pm).
HOUR_OF_DAYTrường này biểu diễn giờ của ngày (0-23).
INSTANT_SECONDSTrường này biểu diễn giây epoch tức thời.
MICRO_OF_DAYTrường này biểu diễn micro-giây của ngày.
MICRO_OF_SECONDTrường này biểu diễn micro-giây của giây.
MILLI_OF_DAYTrường này biểu diễn mili-giây của ngày.
MILLI_OF_SECONDTrường này biểu diễn mili-giây của giây.
MINUTE_OF_DAYTrường này biểu diễn phút của ngày.
MINUTE_OF_HOURTrường này biểu diễn phút của giờ.
MONTH_OF_YEARTrường này biểu diễn tháng của năm.
NANO_OF_DAYTrường này biểu diễn nano-giây của ngày.
NANO_OF_SECONDTrường này biểu diễn nano-giây của giây.
OFFSET_SECONDSTrường này biểu diễn độ lệch từ UTC/Greenwich.
PROLEPTIC_MONTHTrường này biểu diễn tháng proleptic.
SECOND_OF_DAYTrường này biểu diễn giây của ngày.
SECOND_OF_MINUTETrường này biểu diễn giây của phút.

Phương thức get() hoặc getLong() của lớp LocalTime chấp nhận một trường thời gian làm tham số và lấy giá trị của trường đó trong đối tượng hiện tại.

Ví dụ

import java.time.LocalTime;
import java.time.temporal.ChronoField;

public class Demo {
    public static void main(String args[]) {
        // Khởi tạo lớp LocalTime
        LocalTime lTime = LocalTime.now();
        System.out.println(lTime);

        int field = lTime.get(ChronoField.CLOCK_HOUR_OF_AMPM);
        System.out.println("Giờ của ngày (AM/PM): " + field);

        field = lTime.get(ChronoField.AMPM_OF_DAY);
        System.out.println("AM hoặc PM: " + field);

        field = lTime.get(ChronoField.CLOCK_HOUR_OF_DAY);
        System.out.println("Giờ của ngày (1-24): " + field);

        long epoch = lTime.getLong(ChronoField.MINUTE_OF_DAY);
        System.out.println("Phút của ngày: " + epoch);

        field = lTime.get(ChronoField.MINUTE_OF_HOUR);
        System.out.println("Phút của giờ: " + field);

        field = lTime.get(ChronoField.SECOND_OF_DAY);
        System.out.println("Giây của ngày: " + field);

        field = lTime.get(ChronoField.SECOND_OF_MINUTE);
        System.out.println("Giây của phút: " + field);
    }
}

Kết quả

17:02:46.294
Giờ của ngày (AM/PM): 5
AM hoặc PM: 1
Giờ của ngày (1-24): 17
Phút của ngày: 1022
Phút của giờ: 2
Giây của ngày: 61366
Giây của phút: 46