如何将xml数据解码为人类可读的格式

时间:2016-05-31 21:48:03

标签: xml

我有一些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是出生时间)。

有没有办法解码这个并以可读格式获取日期/时间?

2 个答案:

答案 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工作表示例

的屏幕截图

enter image description here

第一列是您的值,第二列是使用纪元偏移调整的值,第三列是格式化为日期/时间的第二列。

Excel使用12/31/1899 00:00作为其纪元;也就是说,零值在Excel中呈现为1/0/1900(这本身很奇怪),值1给出1/1/1900。如果您想在代码中进行转换,可以使用这些知识来调整您正在使用的编程库的偏移量。

答案 1 :(得分:-2)

这实际上不是一个XML问题,而是解释一个奇怪的(可能是未记录的)日期表示的问题。该数字的小数部分是17/24,这表示它可能意味着在给定日期下午5点。 但是,当我们将小数点前的部分解释为日期数时,它将基于过去约6687年的日期。这似乎没有多大意义......