Làm cách nào để chuyển đổi ngày tháng 7 chữ số thành định dạng như MM/dd/yyy?Chuyển đổi Ngày Julian thành Lịch Thông thường Ngày
Trả lời
Tìm thấy một trang web hữu ích: http://www.rgagnon.com/javadetails/java-0506.html
này nên làm như lừa:
public static int[] fromJulian(double injulian) {
int jalpha,ja,jb,jc,jd,je,year,month,day;
double julian = julian + HALFSECOND/86400.0;
ja = (int) julian;
if (ja>= JGREG) {
jalpha = (int) (((ja - 1867216) - 0.25)/36524.25);
ja = ja + 1 + jalpha - jalpha/4;
}
jb = ja + 1524;
jc = (int) (6680.0 + ((jb - 2439870) - 122.1)/365.25);
jd = 365 * jc + jc/4;
je = (int) ((jb - jd)/30.6001);
day = jb - jd - (int) (30.6001 * je);
month = je - 1;
if (month > 12) month = month - 12;
year = jc - 4715;
if (month > 2) year--;
if (year <= 0) year--;
return new int[] {year, month, day};
}
Bạn có thực sự có nghĩa là một ngày Julian, như nhà thiên văn học sử dụng không? Ngày tháng, được xác định là năm (bốn chữ số) và ngày trong năm đó (3 chữ số), đôi khi được gọi sai ngày Julian.
static String formatOrdinal(int year, int day) {
Calendar cal = Calendar.getInstance();
cal.clear();
cal.set(Calendar.YEAR, year);
cal.set(Calendar.DAY_OF_YEAR, day);
Date date = cal.getTime();
SimpleDateFormat formatter = new SimpleDateFormat("MM/dd/yyyy");
return formatter.format(date);
}
Điều này sẽ cho bạn ngày giờ 00:00 giờ địa phương; thay vào đó, bạn có thể muốn đặt múi giờ trên lịch thành GMT, tùy thuộc vào ứng dụng.
Tôi thấy có đủ câu trả lời đã được cung cấp. Nhưng bất kỳ câu hỏi liên quan đến lịch nào chỉ được trả lời một nửa mà không đề cập đến joda-time ;-). Here là cách đơn giản đó là với thư viện này
// setup date object for the Battle of Hastings in 1066
Chronology chrono = JulianChronology.getInstance();
DateTime dt = new DateTime(1066, 10, 14, 10, 0, 0, 0, chrono);
cách đơn giản là ở đây và điều này sẽ trở lại xấp xỉ 100% thông tin chính xác.
String getDobInfo(double doubleString){
SweDate sweDate = new SweDate(doubleString);
int year = sweDate.getYear();
int month = sweDate.getMonth();
int day = sweDate.getDay();
// getting hour,minute and sec from julian date
int hour = (int) Math.floor(sweDate.getHour());
int min = (int) Math
.round((sweDate.getHour() - Math.floor(hour)) * 60.0);
int sec = (int) (((sweDate.getHour() - Math.floor(hour)) * 60.0 - Math
.floor(min)) * 60.0);
return "DOB:(DD:MM:YY) "+day+":"+month+":"+year+" TOB:(HH:MM:SS) "+hour+":"+min+":"+sec;
}
tải xuống Swiss Ephemeris library và tận hưởng mã hóa !!!
Bắt đầu với Java 8, điều này trở thành một lớp lót để có được những LocalDate
:
LocalDate.MIN.with(JulianFields.JULIAN_DAY, julianDay)
.format(DateTimeFormatter.ofPattern("MM/dd/yyyy"));
đâu julianDay
là số 7 chữ số của bạn.
- 1. ngày chuyển đổi yyyymmdd thành yyJJJ hoặc Julian Date
- 2. Chuyển đổi ngày mySQL thành ngày Javascript
- 3. Thay đổi ngày khi chuyển đổi từ XMLGregorianCalendar sang Lịch
- 4. Chuyển đổi dấu thời gian unix thành julian
- 5. Ngày Julian của năm trong Java
- 6. Chuyển đổi ngày PHP thành định dạng ngày javascript
- 7. ngày chuyển đổi thành unixtime php
- 8. Tôi làm cách nào để sử dụng Số Ngày Julian với API Lịch Java?
- 9. Chuyển đổi ngày giờ thành chuỗi
- 10. CLARION ngày chuyển đổi C# + NGÀY ADD/SUBTRACT
- 11. Chuyển đổi dấu ngày/giờ của lịch sử Chrome thành định dạng có thể đọc được
- 12. Chuyển đổi ngày thành mili giây
- 13. NSDate - Chuyển đổi ngày thành GMT
- 14. Chuyển đổi Epoch thành Ngày trong Matlab
- 15. Chuyển đổi C# DateTime thành Ngày Javascript
- 16. chuyển đổi ngày chuỗi thành java.sql.Date
- 17. Chuyển đổi chuỗi thành Ngày - C#
- 18. Refactor for Speed: Chuyển đổi thành ngày
- 19. chuyển đổi Chuỗi thành Ngày trên GWT
- 20. Chuyển đổi ngày giờ thành hiện tại
- 21. chuyển đổi đối tượng Ngày thành TimeWithZone
- 22. Chuyển đổi chuỗi thành ngày giờ
- 23. Chuyển đổi ngày thành múi giờ khác nhau
- 24. SPARQL ngày chuyển đổi
- 25. Cách chuyển đổi ngày chuỗi ký tự thành lớp ngày nếu giá trị ngày bị thiếu
- 26. Chuyển đổi ngày sang ngày trong php
- 27. Chuyển đổi Từ Bigint thành giá trị ngày giờ
- 28. Chuyển đổi ngày thành dấu thời gian UNIX
- 29. ngày chuyển đổi
- 30. Chuyển đổi ngày ldap
ja = (int) injulian; là một lỗi, thay đổi nó thành ja = (int) julian; – RealHowTo