Cách đơn giản nhất để nhận đối tượng Calendar
từ một số java.time.Instant
hoặc java.time.ZonedDateTime
là gì?Chuyển đổi java.time thành Lịch
Trả lời
Nhận Calendar
ngay lập tức từ ZonedDateTime
là khá đơn giản, miễn là bạn biết rằng có phương thức GregorianCalendar#from(ZonedDateTime)
. Đã có một cuộc thảo luận trong Threeten-dev mail group, về lý do tại sao phương thức đó không ở trong lớp Calendar
. Không phải là một cuộc thảo luận rất sâu sắc.
Tuy nhiên, không có cách nào trực tiếp để chuyển đổi từ số Instant
thành Calendar
. Bạn đã có một trạng thái trung gian cho rằng:
Instant instant = Instant.now();
ZonedDateTime zdt = ZonedDateTime.ofInstant(instant, ZoneId.systemDefault());
Calendar cal1 = GregorianCalendar.from(zdt);
Đây có lẽ là bởi vì, như hiển nhiên từ bảng trên this oracle tutorial, một Instant
bản đồ để Date
chứ không phải là một Calendar
. Tương tự, một bản đồ ZonedDateTime
đến Calendar
.
Làm thế nào về GregorianCalendar.from(ZonedDateTime.ofInstant(instant, zoneId))
?
Không thể lấy ZonedDateTime từ TemporalAccessor: 2001-12-17T09: 30: 47Z thuộc loại java.time.Instant – Line
Thật vậy, bạn cũng cần chỉ định một ZoneId. Tôi đã cập nhật câu trả lời của mình. –
Bạn cần lấy TimeZone bằng cách sử dụng ngay lập tức và sau đó bạn có thể nhận được lịch.
Calendar myCalendar = GregorianCalendar.from(ZonedDateTime.ofInstant(Instant.now(), ZoneId.systemDefault()));
- 1. Làm thế nào để chuyển đổi java.sql.timestamp thành LocalDate (java8) java.time?
- 2. Chuyển đổi Ngày Julian thành Lịch Thông thường Ngày
- 3. Chuyển đổi Lịch thành XMLGregorianCalendar với định dạng cụ thể
- 4. Cách thanh lịch để chuyển đổi python datetime.timedelta thành dateutil.relativedelta
- 5. Chuyển đổi sang và từ lịch Hindu
- 6. Android N Java8 java.time
- 7. Chuyển đổi chuỗi thành GregorianCalendar
- 8. Thay đổi ngày khi chuyển đổi từ XMLGregorianCalendar sang Lịch
- 9. java.time: DateTimeParseException cho ngày "20150901023302166"
- 10. Chuyển đổi java.time.LocalDateTime SE 8 thành dấu thời gian
- 11. iOS Swift chuyển đổi lịch thành phần int tháng để phong cách vừa chuỗi tháng
- 12. Làm thế nào để chuyển đổi các đối tượng java.util.Date thành các đối tượng Lịch?
- 13. Chuyển đổi dấu ngày/giờ của lịch sử Chrome thành định dạng có thể đọc được
- 14. Cách thanh lịch để chuyển đổi chuỗi giá trị thành một mảng Javascript?
- 15. Cách thanh lịch để chuyển đổi chuỗi mảng Mảng thành mảng Javascript của mảng?
- 16. Thời gian Joda - Chuyển đổi đối tượng Lịch sang LocalDate
- 17. Chuyển đổi Delphi Real48 thành C# double
- 18. Chuyển đổi môđun con Git thành subtree
- 19. cách chuyển đổi chuỗi thành bool
- 20. Chuyển đổi số nguyên [] thành chuỗi int []
- 21. Chuyển đổi NULL thành chuỗi rỗng - Chuyển đổi không thành công khi chuyển đổi từ chuỗi ký tự thành uniqueidentifier
- 22. Chuyển đổi steady_clock :: time_point thành time_t
- 23. Thành phần lịch/lịch asp.net tốt nhất?
- 24. Cách thanh lịch để chuyển đổi giữa StringComparison và StringComparer?
- 25. UICollectionView - Chuyển đổi thu phóng như Lịch iOS7
- 26. Sử dụng API java.time trong scala
- 27. Chuyển đổi ifstream thành istream
- 28. Chuyển đổi DataColumn.DataType thành SqlDbType
- 29. Chuyển đổi Ruby thành C#
- 30. Chuyển đổi XDocument thành Luồng
Bạn đã thử gì? Vấn đề là gì? Các javadoc là tự do có sẵn, bạn biết. –
Đánh giá bởi danh tiếng của bạn, tôi nghi ngờ rằng bạn có thể đã kiểm tra 'Calendar cal = Calendar.getInstance(); cal.setTimeInMillis (Instant.now(). toEpochMilli()); 'Vậy có gì sai với giải pháp này? – Pshemo
Và có lẽ bạn cũng đã thử - 'GregorianCalendar.from (zonedDateTime); ' –