Cách lấy năm hiện tại trong Java

Trong bài viết này chúng ta sẽ cùng nhau tìm hiểu cách lấy năm hiện trong bằng ngôn ngữ Java. Để lấy năm hiện tại Java cung cấp một số cách khác nhau mà chúng ta sẽ đi qua từng cách một.

Sử dụng Date và SimpleDateFormat

Date class được giới thiệu trong Java 1.0 và cung cấp rất nhiều cách tiếp cận khác nhau khi làm việc với thời gian trong Java.

SimpleDateFormat class thừa kế từ DateFormat và chủ yếu được sử dụng để phân tích kiểu dữ liệu thời gian thành dạng văn bản.

Để lấy năm hiện tại sử dụng SimpleDateFormat và Date trong Java chúng ta có thể làm như sau

public static void main(String[] args){
        Date date = new Date();
 
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat();
        simpleDateFormat.applyPattern("yyyy");
        String format = simpleDateFormat.format(date);
        System.out.println(format);
}

Sử dụng Calendar

Hàm getInstance() trong Calendar sẽ trả về một Calendar instance với time zone and locale mặc định. Cuối cùng chúng ta sẽ sử dụng hàm get() và truyền tham số Calendar.YEAR vào method để nhận về năm hiện tại.

public static void main(String[] args){
        Calendar instance = Calendar.getInstance();
        int year = instance.get(Calendar.YEAR);
        System.out.println(year);
}

Sử dụng LocalDate

LocalDate class được giới thiệu trong Java 8 được xem như là một kiểu dữ liệu cải tiến so với Date. 

public static void main(String[] args){
        LocalDate localDate = LocalDate.now();
        int year = localDate.getYear();
        System.out.println(year);
}

Sử dụng LocalDateTime

LocalDateTime hoạt động tương tự như LocalDate nhưng có cung cấp giá trị thời gian đến chính xác một thời điểm (tức là chứa giá trị phút, giây v.v).

public static void main(String[] args){
        LocalDateTime localDate = LocalDateTime.now();
        int year = localDate.getYear();
        System.out.println(year);
}

Sử dụng ZonedDateTime

ZonedDateTime cũng hoạt động tương tự như LocalDate với một số thông tin khác như ZonedId and ZoneOffset. Nó rất quan trọng khi xử lý dữ liệu từ các múi giờ khác nhau. Khi zoneId được chỉ định là Europe / Paris và ZoneOffset là một số có cộng hoặc trừ cho biết cách điều chỉnh thời gian với UTC, chẳng hạn như +03: 00.

ZonedDateTime không có constructor và sử dụng now() để lấy ngày, giờ, độ lệch và múi giờ hiện tại bằng cách sử dụng đồng hồ hệ thống và múi giờ mặc định.

public static void main(String[] args){
        ZonedDateTime zonedDateTime = ZonedDateTime.now();
        int year = zonedDateTime.getYear();
        System.out.println(year);
}
 

Sử dụng Instant and ZoneId

Instant cung cấp cho bạn ngày thực tế và loại bỏ offset and time zone, và chúng ta cần cung cấp ZoneId cho nó.

Các bạn có thể sử dụng ZoneId.systemDefault() để lấy ZoneID mặc định của hệ thống. 

public static void main(String[] args){
        Instant instant = Instant.now();
        ZonedDateTime zonedDateTime = instant.atZone(ZoneId.systemDefault());
        int year = zonedDateTime.getYear();
        System.out.println(year);
}

Tóm lược

Qua bài viết ngắn này mình đã trình bày cho các bạn một số cách để lấy năm hiện tại trong ngôn ngữ Java.

5 1 vote
Article Rating
Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x