[英]How to parse a Sharepoint Date from Hex to a java.util.Date
我正在嘗試將MS Sharepoint中的Date解析為java.util.Date。 詳細信息:我通過SOAP GetListItems方法從Grails Web應用程序查詢一個Sharepoint。 在Sharepoint列表中,正確顯示了日期,這里是09/11/2009,但是在SOAP響應中,我得到了
0x01ca60cf|0x94894000此外,這僅在docx,pptx等文件類型下發生。
經過一些有教養的反復試驗后,我得出以下結論:
def date = "0x01ca60cf|0x94894000"
// Parse our hex numbers into a single number
def nums = Long.parseLong( date.split( /\|/ ).collect { it.replace( '0x', '' ) }.join( '' ), 16 ) / 10000
// MS calendar goes from 1600... Java's goes from 1970, so we need to make up the difference
nums += Calendar.instance.updated( year:1601, month:0, date:1 ).time.time
println "Converted date is ${new Date( nums as Long )}"
您可能需要做更多的測試,以確保這不是偶然,我在這種情況下得到了正確的約會...
您是否有更多價值可以對其進行測試?
編輯 ...
啊...我不確定的唯一原因是為什么我需要這樣做/ 10000
,但是DateTime對象中滴答聲的文檔顯示:
一個滴答聲代表一百納秒或一百萬分之一秒。 毫秒內有10,000個滴答聲。
解釋它:-)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.