Giá trị ngày tối thiểu trong Java là bao nhiêu?Ngày tối thiểu trong Java
Trả lời
Nếu bạn đang nói về java.util.Date
như một dấu thời gian bạn có thể làm điều này
Date d = new Date(0L)
và bạn sẽ thấy điều này đại diện cho Thu 1 tháng 1 01:00:00 GMT 1970
Như tulskiy đã chỉ ra có thể truyền giá trị âm cho hàm tạo Date. Nếu chúng ta làm được điều này và sử dụng một định dạng ngày bao gồm thời đại chúng ta có thể thấy:
Date d = new Date(Long.MIN_VALUE);
DateFormat df = new SimpleDateFormat("EEE, d MMM yyyy G HH:mm:ss Z");
System.out.println(df.format(d));
hiển thị: Sun, 02 tháng 12 292.269.055 BC 16:47:04 +0000
Đừng quên rằng ngày constructor vui vẻ chấp nhận các giá trị âm.
Date date = new Date(Long.MIN_VALUE);
lợi nhuận
Sun 02 tháng 12 22:47:04 BDT 292269055
Tôi đoán đó là về thời điểm Big Bang khủng long :)
EDIT
Vì martin clayton đã trả lời, bạn có thể sử dụng lớp Lịch để kiểm tra thời đại. Điều này sẽ xuất ra 0 là viết tắt của BCE:
Calendar calendar = Calendar.getInstance();
calendar.setTime(new Date(Long.MIN_VALUE));
System.out.println(calendar.get(Calendar.ERA));
Nhưng điều này có vẻ là một ngày trong tương lai (năm 292269055), không phải trong quá khứ. Dường như thông số đang được hiểu là giá trị dương. – Grodriguez
@Grodriguez - thời đại của năm đó là gì? ;-) –
@Grodriguez: xem bản chỉnh sửa của tôi, đây là một giá trị trong quá khứ. –
Giống như đối với các lớp Lịch.
Hãy thử điều này:
Date d = new Date(Long.MIN_VALUE);
System.out.println(d);
Bạn sẽ thấy:
Sun Dec 02 16:47:04 GMT 292269055
Nhưng định dạng ngày mặc định không bao gồm thời đại - đó là TCN cho ngày này.
Các câu trả lời khác có thể đúng nhưng sử dụng các lớp đã mã hóa.
java.time
Các lớp ngày thời gian cũ (java.util.Date/.Calendar vv) đã được thay thế bởi khuôn khổ java.time xây dựng vào Java 8 và sau đó.
Các java.time lớp học được lấy cảm hứng từ Joda-Time, được xác định bởi JSR 310, mở rộng dự án ThreeTen-Extra, back-chuyển đến Java 6 & 7 bởi dự án ThreeTen-Backport, và thích nghi với Android trong dự án ThreeTenABP. Xem Tutorial.
Trong giây lát trên dòng thời gian ở UTC với độ phân giải nanoseconds, hãy sử dụng Instant
. Với số offset-from-UTC, hãy sử dụng OffsetDateTime
.Đối với một số time zone (bù trừ + quy tắc cho bất thường), hãy sử dụng ZonedDateTime
, nhưng do bản chất của nó không được xác định tối thiểu, cũng không phải ZoneId
. Đối với giá trị chỉ có ngày không có thời gian trong ngày và không có múi giờ, hãy sử dụng LocalDate
. Đối với giá trị chỉ có thời gian trong ngày không có ngày và không có múi giờ, hãy sử dụng LocalTime
. Đối với ngày giờ không có múi giờ, hãy sử dụng LocalDateTime
.
Instant.MIN
=-1000000000-01-01T00:00Z
OffsetDateTime.MIN
=-999999999-01-01T00:00:00+18:00
LocalDate.MIN
=-999999999-01-01
- =
00:00
LocalDateTime.MIN
=-999999999-01-01T00:00:00
Year.MIN_VALUE
=-999,999,999
ZoneOffset.MIN
=-18:00
(nhưng-12:00
trong thực tế)
Chú ý: Hãy cảnh giác của việc sử dụng các giá trị như một số loại cờ hay ý nghĩa đặc biệt. Nhiều thư viện và cơ sở dữ liệu phần mềm khác có thể không hỗ trợ các giá trị cực đoan này. Đối với một lá cờ hoặc ý nghĩa đặc biệt như một "không có giá trị" không có giá trị, tôi khuyên bạn nên chọn một thời điểm tùy ý nhưng tránh đi đến mức cực đoan đó về phía trước hoặc tiến về phía trước trong thời gian. Có lẽ là Unix epoch reference date, khoảnh khắc đầu tiên của năm 1970 ở UTC, 1970-01-01T00: 00: 00Z. Định nghĩa như một hằng số trong Java: Instant.EPOCH
Kể từ Date
được đánh dấu là Deprecated, tôi nghĩ cần phải có một cách khác để làm được việc này, vì vậy tôi xem xét một số các phương pháp, và tôi thấy cách này
Bạn cũng có thể sử dụng Long.MIN_VALUE, tại thời điểm tôi viết bài này, tôi đã không tìm kiếm, và thậm chí/vì vậy tôi không nhớ nó.
** Không chính xác: ** Lớp 'java.util.Date' là * không * không được dùng nữa (nhưng phải là). Một số phương thức của nó không còn được dùng nữa mà không phải toàn bộ lớp.Ngoài ra, câu trả lời này không cung cấp nhiều giá trị cho tâm trí của tôi. –
tôi chỉ cần kiểm tra lại, và bạn đã đúng. một số phương thức khởi tạo của nó là, nhưng không phải là wholy – deadManN
- 1. Java: Phạm vi ngày tối thiểu và tối thiểu
- 2. Ngày tối thiểu và tối đa
- 3. đặt ngày tối thiểu trong jquery datepicker
- 4. Đặt ngày tối thiểu và tối đa trên Lịch?
- 5. UIDatePicker, đặt ngày tối đa và tối thiểu dựa trên ngày hôm nay
- 6. iOS 5 - Đặt ngày tối thiểu UIDatePicker thành "hôm nay"
- 7. Ràng buộc tối thiểu của Grails để xác thực ngày
- 8. tối thiểu vs đỉnh tối thiểu bao gồm
- 9. đống tối thiểu trong python
- 10. Tính thời gian ngày Khoảng thời gian tối thiểu, tối đa và lớn nhỏ nhất
- 11. Giá trị tối thiểu và tối đa của Java trong Array
- 12. LISP tối thiểu nhất?
- 13. DatePickerDialog thực thi không đúng ngày tối thiểu là ngày 1 tháng 1 năm 1970
- 14. xóa/ẩn các hàng bên ngoài phạm vi ngày tối thiểu/tối đa của UIDatePicker?
- 15. datepicker tối thiểu năm
- 16. cách đặt ngày tối thiểu cho bộ chọn ngày giờ kendo
- 17. Haskell tối thiểu/tối đa Double Constant
- 18. Tìm tối đa, tối thiểu và trung bình trong F #
- 19. Tìm số tối thiểu và tối đa trong trăn
- 20. Hoạt động xóa-tối đa trong một heap tối thiểu
- 21. Chiều rộng tối thiểu trong MSIE 6
- 22. Phương pháp vuông tối thiểu trong python
- 23. Ví dụ BluetoothManManager tối thiểu
- 24. Tối thiểu PHP Phar stub
- 25. gtk kích thước tối thiểu
- 26. Tham khảo tối thiểu MVC4
- 27. Làm thế nào để sao chép một inputstream trong java trong thời gian tối thiểu
- 28. Tìm giá trị tối thiểu và tối đa của hàm
- 29. Tắt tối thiểu hóa và tối đa hóa trên WinForm?
- 30. Tôi có thực sự muốn trả lại ngày tối thiểu không?
Ngày tối thiểu có nghĩa là gì? – qrtt1
có thể trùng lặp của [Java: Giá trị tối đa và tối thiểu của một GregorianCalendar là gì?] (Http://stackoverflow.com/questions/2393016/java-what-where-are-the-maximum-and-minimum- values-of-a-gregoriancalendar) –
Xem chủ đề này http://stackoverflow.com/questions/2393016/java-what-where-are-the-maximum-and-minimum-values-of-a-gregoriancalendar – sproketboy