我有int
號碼2455449,我知道這代表日期09/09/2010。我如何定義使用的日期格式?我需要以這種格式生成新的日期。它將用於http請求。我想那是朱利安,但我不確定。我試圖將此號碼轉換爲日期,但沒有返回09/09/2010的正確日期。大概我使用了錯誤的SimpleDateFormat("mm/dd/yy")
或Calendar.XXXX(例如Calendar.DAY_OF_YEAR
)如何定義日期格式?
回答
這是一個Julian day的數字,它用來計算自Julian 1761年格林尼治中午在公元前4713年1月1日開始的天數。
要從JD轉換爲UNIX時間戳:
unix_time_stamp = (JD -2440587.5) * 86400
要轉換從UNIX時間戳JD:
JD = (unix_time_stamp/86400) + 2440587.5
注意JD從正午,不是半夜計數。這就是爲什麼在添加結束時它是0.5。
更新如果你想在JavaScript中使用它(使用毫秒從紀元)
function dateFromJulianDay(julian_day) {
return new Date((julian_day - 2440587.5) * 86400000);
}
function dateToJulianDay(date) {
// date should be a javascript Date object
// or a variable with milliseconds since the unix epoch 1 jan 1970
return (date/86400000) + 2440587.5;
}
console.log(dateFromJulianDay(2455449));
console.log(dateToJulianDay(new Date(2010,9-1,9)));
請記住,在構造日期的月份是0-11,什麼爲什麼做-1以上。
非常感謝!我找到了一個更好的解決方案 - http://www.rgagnon.com/javadetails/java-0506.html – user341203 2010-10-21 22:30:23
@ user341203:這個問題被錯誤地標記爲JavaScript?你在使用不同世紀的日期嗎?您鏈接的代碼看起來非常複雜,比如'Calendar.setTimeInMillis((julian_day - 2440587.5)* 86400000)'和'(Calendar.getTimeInMillis()/ 86400000)+ 2440587.5'(我沒有測試過Java代碼,但你明白了)。我只是好奇! :) – some 2010-10-22 02:17:51
var now = new Date();
now.format("m/dd/yy");
// Returns, e.g., 6/09/07
// Can also be used as a standalone function
dateFormat(now, "dddd, mmmm dS, yyyy, h:MM:ss TT");
// Saturday, June 9th, 2007, 5:46:21 PM
// You can use one of several named masks
now.format("isoDateTime");
// 2007-06-09T17:46:21
// ...Or add your own
dateFormat.masks.hammerTime = 'HH:MM! "Can\'t touch this!"';
now.format("hammerTime");
// 17:46! Can't touch this!
看起來像具有未知功能的方程。
f(d,m,y)=D;
其中d是當天,m月,y年和D是整數日期。不失一般性,我們可以假定這個映射應該是一對一的,即每個有效的(d,m,y)組合映射到一個唯一的正整數(> = 0),並且每個正整數都必須表示一個有效且唯一的d,m,y)元組。
因此,函數f(基於日期屬性)的最明顯選擇是自第一天起過去的天數,它滿足我們的條件。所以現在我們有邊界條件。
f(d1,m1,y1)=0;
f(9,9,2010)= 2455449;
其中d1,m1,y1代表參考日期,如unix時間戳記中的紀元。使用明顯的函數(見上文),(d1,m1,y1)出現爲(10 5 -4713)。所以使用的DatFormat是
自4713年6月10日以來經過的天數。大約。
正式勝利;-)會很高興驗證您的結果與另一個抽樣點 - user341203,你可以輸入另一個日期,並告訴我們結果? – 2010-10-21 18:15:22
我認爲它應該是1月1日,4713 B.C,Julian日的時代:http://en.wikipedia.org/wiki/Julian_day#Converting_Gregorian_calendar_date_to_Julian_Day_Number – some 2010-10-21 18:49:10
- 1. 如何自定義日期格式
- 2. 自定義日期格式
- 3. 標準日期格式與自定義日期格式
- 4. 自定義日期時間,自定義日期格式
- 5. Yii自定義日期格式(模式)
- 6. 如何以自定義日期格式返回日曆對象
- 7. PyQt Paint自定義日期格式
- 8. SAS - 自定義日期格式 - 爲YYYYMMDDhhmmss
- 9. 自定義日期格式mmm:ss
- 10. Silverlight DatePicker自定義日期格式
- 11. Convert自定義日期格式爲unixtime
- 12. 在Python/Pandas中定義日期格式
- 13. 自定義日期時間格式4
- 14. Matplotlib autodatelocator自定義日期格式?
- 15. 自定義日期時間格式
- 16. datpicker自定義日期更改格式
- 17. c#自定義日期格式
- 18. d3自定義日期格式
- 19. DataTables自定義日期格式排序
- 20. 帶日期格式的預定義daterangepicker
- 21. Java日期自定義格式爲ZonedDateTime
- 22. SAS - 自定義日期格式
- 23. jQuery tablesorter自定義日期格式
- 24. 自定義格式包括日期
- 25. 自定義日期驗證格式
- 26. 自定義長日期格式js
- 27. Linqpad中的自定義日期格式
- 28. 自定義SQL日期時間格式
- 29. 如何指定區域日期格式?
- 30. 如何從日期減去1周並取回自定義日期格式
你從哪裏得到2455449,它是如何轉換爲09/09/2010的? – mezzie 2010-10-21 17:38:06
我分析了對服務器的http請求。我在09/09/2010填寫了日曆日期,並在服務器的http請求中獲得了此號碼(2455449)。 – user341203 2010-10-21 17:49:37
你可以顯示你使用的代碼嗎? – 2010-10-21 18:37:15