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

问题描述:

我有一些xml文件已被用作占星术应用程序中的个人数据文件。如何将xml数据解码为人类可读格式

该申请不存在更多,但我仍然需要的数据。打开XML,我有以下:

<BirthDate>2442260.7083333</BirthDate> 
在这种情况下

<BirthDate>2436617.0375000</BirthDate> 

真正的日期是1959年2月17日。 12:54(12:54是生日)。

<BirthDate>2446904.4652778</BirthDate> 
在这种情况下,真正的约会

是1987年4月18日。 23:10(23:10是生日)。

有没有一种方法来解码这个并获取可读格式的日期/时间?

+0

你真的在问XML吗?还是你在想解决这个数字与日期的关系? – Quentin

+0

与该号码对应的日期是多少?有了这些信息,我们可以弄清楚它是如何编码的。 –

+0

@JimGarrison,请参阅我的帖子的更新。 – bonaca

编码方法确实是基于天(整数部分)和小数部分天数(小数部分),但在过去的历元约6611年。

解码这些日期/时间的最简单方法是使用Excel,并对时期(零点)进行调整。调整为-2415019天。

因此,如果您放置公式

=2436617.0375-2415019 

在一个单元格,格式为日期/时间你

2/17/59 00:54 

对于其他值的公式

=2446904.4652778-2415019 

给日期

4/18/87 11:10 

所以我怀疑你给23:10的价值是一个错字。

请注意,计算历元日期(过去是零点时)是没有意义的,因为当时没有使用现代日历。你可以推断,但你必须选择一个日历(朱利安vs格里高利或其他),无论你想出什么(约公元前4595年),对任何事情都没有用处。

这里的一个样品的Excel工作表的屏幕截图

enter image description here

第一列是您的值,第二个是与所述历元偏移调整值,和第三是格式化为日期的第二列/时间。

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

+0

非常感谢您的努力。我认为问题会以这种方式解决(使用Excel)。 – bonaca

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

+1

这应该是一个评论,而不是答案 –

+0

我不确定 - 它至少回答了部分问题(如何解码这个数字)。 –

+0

您应该等待OP的澄清。我们只需要一个相应的日期来计算可能的历元和编码。 –