[英]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.