2016-05-31 70 views
0

我有一些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

回答

1

編碼方法確實是基於天(整數部分)和小數部分天數(小數部分),但在過去的歷元約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

-2

這實際上不是一個XML問題,而是解釋一個奇怪的(可能沒有記錄的)日期表示的問題之一。數字的小數部分是17/24,這表示它可能意味着給定日期的下午5點。 但是,當我們將小數點前的部分解釋爲日數時,它將基於過去約6687年的日期。這似乎沒有太大的意義......

+1

這應該是一個評論,而不是答案 –

+0

我不確定 - 它至少回答了部分問題(如何解碼這個數字)。 –

+0

您應該等待OP的澄清。我們只需要一個相應的日期來計算可能的歷元和編碼。 –

相關問題