tl; dr
Một số Câu trả lời khác là chính xác khi đề xuất các lớp java.time nhưng sử dụng các độ dài không cần thiết cho các nhu cầu cụ thể của bạn.
Instant.now() // Capture the current moment in UTC with a resolution as fines nanoseconds but usually in microseconds or milliseconds.
.truncatedTo( ChronoUnit.MINUTES ) // Lop off any seconds or fractional second, to get a value in whole minutes.
.toString() // Generate a String in standard ISO 8601 format where a `T` separates the year-month-day from the hour-minute-second, and the `Z` on the end for “Zulu” means UTC.
2018-01-23T12: 34Z
Instant::toString
Các jav.time.Instant
lớp đại diện cho một thời điểm trong UTC, luôn UTC.
Instant instant = Instant.now() ;
tức thì.toString (): 2018-01-23T12: 34: 56.123456Z
Phần Z
cuối của chuỗi ví dụ của bạn 2010-10-12T08:50Z
được phát âm là Z Zulu và có nghĩa là UTC .
Định dạng mong muốn của bạn xảy ra để tuân thủ tiêu chuẩn ISO 8601 . Các lớp java.time sử dụng các định dạng tiêu chuẩn này theo mặc định khi phân tích cú pháp / tạo chuỗi. Vì vậy, không cần chỉ định một mẫu định dạng. Chỉ cần gọiInstant::toString
như đã thấy ở trên.
Nếu bạn đặc biệt muốn cả phút mà không có giây hoặc giây, thì cắt ngắn. Chỉ định một đơn vị thời gian thông qua ChronoUnit
lớp học.
Instant instant = Instant.now().truncatedTo( ChronoUnit.MINUTES ) ;
String output = instant.toString(); // Generate a `String` object in standard ISO 8601 format.
Giới thiệu về java.time
Các java.time khung được xây dựng vào Java 8 và sau đó. Những lớp học thay thế cái cũ phiền hà di sản lớp học ngày thời gian như java.util.Date
, Calendar
, & SimpleDateFormat
.
Các Joda thời gian dự án, bây giờ trong chế độ bảo trì , khuyên chuyển đổi sang các java.time lớp.
Để tìm hiểu thêm, xem Hướng dẫn Oracle . Và tìm kiếm Stack Overflow cho nhiều ví dụ và giải thích. Đặc điểm kỹ thuật là JSR 310 .
Bạn có thể trao đổi các đối tượng java.time trực tiếp với cơ sở dữ liệu của bạn. Sử dụng trình điều khiển JDBC tương thích với JDBC 4.2 trở lên. Không cần chuỗi, không cần java.sql.*
lớp.
Nơi để có được các lớp java.time?
Các ThreeTen-Extra dự án mở rộng java.time với các lớp bổ sung. Dự án này là một nền tảng chứng minh cho các bổ sung có thể trong tương lai cho java.time. Bạn có thể tìm thấy một số các lớp học hữu ích ở đây chẳng hạn như Interval
, YearWeek
, YearQuarter
, và nhiều hơn nữa .