2011-05-07 121 views
2

我正在使用SAXParser解析一個xml文件,並在處理程序中創建對象,其中一個數據成員是日期。解析日期並將其存儲在SQLite數據庫中

我的XML文件上的日期採用以下格式:2010-12-28

雖然我找不到如何將字符串轉換爲Date對象。我也不知道如何將它存儲在SQLite數據庫中,因爲似乎有很多格式(有小時/分鐘/等的格式)

而且我需要它存儲在一個對象中,以便我可以計算時間跨度等等

有人可以幫助我嗎?

回答

9

您可以使用Java的簡單的日期格式,以您的日期格式爲Date對象,你可以用來做計算和這樣的:

http://download.oracle.com/javase/1.4.2/docs/api/java/text/SimpleDateFormat.html

你想要的解析字符串"yyyy'-'MM'-'dd"

由於將其存儲到SQLite數據庫中,您有幾個選項:

  • 將其存儲作爲一個字符串,並在它出來時將其轉換回日期對象
  • (首選)將其存儲爲unix時間戳(Date.getTime()爲您提供自1970年以來的毫秒數,並且可以將該值存儲在數據庫中。 )這種方式是首選,因爲您不必執行很多(相對昂貴的)轉換。您可以簡單地對long時間戳值進行基本操作。

有一對夫婦使用其他選項的SQLite內置的日期函數(如描述here),但最終,如果你想將它拉入了Android/Java代碼和操作它作爲一個Date對象你會不得不做一個轉換。

+0

什麼數據類型應該用於SQLite中的時間戳,簡單的'文本'? – networkprofile 2011-05-07 17:36:23

+2

@Sled如果你用第一個選項去使用'text'。然而,首選的選擇是使用unix timestamp協議,在這種情況下,您將使用'integer'(它可以保存Java'long'值) – debracey 2011-05-07 17:56:34

+0

好吧,謝謝,我選擇了首選項並使用了整數。最後一個問題:是否有任何課程可以幫助您計算日期等?我想做一些事情,比如看日期是否已經過去等。 – networkprofile 2011-05-07 18:46:51

相關問題