我有一些xml文件,这些文件在占星术应用程序中用作个人数据文件。
应用程序不存在更多,但我仍然需要数据。打开xml我有以下内容:
<BirthDate>2442260.7083333</BirthDate>
或
<BirthDate>2436617.0375000</BirthDate>
在这种情况下,实际日期是17.02.1959。 12:54(12:54是出生时间)。
或
<BirthDate>2446904.4652778</BirthDate>
在这种情况下,实际日期是18.04.1987。 23:10(23:10是出生时间)。
有没有办法解码这个并以可读格式获取日期/时间?
答案 0 :(得分:1)
编码方法确实基于天(整数部分)和天数(小数部分),但过去的时期大约是6611年。
解码这些日期/时间的最简单方法是使用Excel,并调整纪元(零点)。调整时间为-2415019天。
因此,如果你放置公式
=2436617.0375-2415019
在单元格和格式中作为日期/时间
2/17/59 00:54
对于另一个值公式
=2446904.4652778-2415019
给出日期
4/18/87 11:10
所以我怀疑你给23:10的价值是一个错字。
请注意,计算纪元日期(过去零点时)是没有意义的,因为当时没有使用现代日历。你可以推断,但你必须选择一个日历(Julian vs Gregorian或其他东西),无论你想出什么(约公元前4595年)都不会对任何事情有用。
以下是Excel工作表示例
的屏幕截图第一列是您的值,第二列是使用纪元偏移调整的值,第三列是格式化为日期/时间的第二列。
Excel使用12/31/1899 00:00
作为其纪元;也就是说,零值在Excel中呈现为1/0/1900
(这本身很奇怪),值1
给出1/1/1900
。如果您想在代码中进行转换,可以使用这些知识来调整您正在使用的编程库的偏移量。
答案 1 :(得分:-2)
这实际上不是一个XML问题,而是解释一个奇怪的(可能是未记录的)日期表示的问题。该数字的小数部分是17/24,这表示它可能意味着在给定日期下午5点。 但是,当我们将小数点前的部分解释为日期数时,它将基于过去约6687年的日期。这似乎没有多大意义......