【问题标题】:how to decode xml data into a human readable format如何将 xml 数据解码为人类可读的格式
【发布时间】:2016-05-31 21:48:03
【问题描述】:

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

有没有办法对此进行解码并以可读格式获取日期/时间?

【问题讨论】:

  • 您实际上是在询问 XML 还是在尝试弄清楚该数字与日期的关系?
  • 那个数字对应的日期是什么时候?有了这些信息,我们就可以弄清楚它是如何编码的。
  • @JimGarrison,请看我帖子的更新。
  • 这有帮助,但时代没有意义。能否提供第二个值及其对应的日期?
  • @JimGarrison,我又添加了一个日期/时间。

标签: xml


【解决方案1】:

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

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

因此,如果您放置公式

=2436617.0375-2415019

在一个单元格中,格式为你得到的日期/时间

2/17/59 00:54

对于其他值的公式

=2446904.4652778-2415019

给出日期

4/18/87 11:10

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

请注意,计算纪元日期(过去是零点)是没有意义的,因为当时没有使用现代日历。您可以推断,但您必须选择一个日历(儒略历与公历或其他),而无论您想出什么(约公元前 4595 年)都不会有任何用处。

这是一个示例 Excel 工作表的屏幕截图

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

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

【讨论】:

  • 非常感谢您的努力。我认为问题将通过这种方式解决(使用 excel)。
【解决方案2】:

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

【讨论】:

  • 这应该是评论,而不是答案
  • 我不确定 - 它至少回答了部分问题(如何解码这个数字)。
  • 您应该等待 OP 的澄清。我们只需要一个相应的日期来计算可能的纪元和编码。
  • @Hans-MartinMosner,请看我帖子的更新。
猜你喜欢
  • 2018-04-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-09
  • 1970-01-01
  • 1970-01-01
  • 2019-09-07
相关资源
最近更新 更多