2013-02-15 41 views
0

我有要求在Android中記錄傳感器數據。爲了將值存儲在數據庫中,我需要時間戳作爲主鍵,格式爲 - hh:mm:ss:SS,其中SS表示毫秒值。當我嘗試使用SensorEvent.timestamp(使用下面的代碼)時,我無法從Date類獲取毫秒。來自Android設備的時間戳格式爲hh:mm:ss:SS

long currTimeRelativeToBoot = SystemClock.uptimeMillis(); 
    long currTimeAbsolute = System.currentTimeMillis(); 
    double mStartTimeAbsoluteS = ((double)(currTimeAbsolute - currTimeRelativeToBoot))/(double)1000.0; 
    double temp = mStartTimeAbsoluteS+((double)event.timestamp)/1000000000.0; 
    Date time=new java.util.Date((long)temp*1000); 

是否有可能以格式hh:mm:ss:SS從Android設備獲取當前時間? 或者有什麼替代方法?

在此先感謝!

回答

0

使用SimpleDateFormat,請參閱教程here。但不推薦這種方法,如果你長期保存它,你可以比較它,訂單等...

+0

感謝您的答覆。你能分享一個如何做到這一點的例子片段嗎? @gabi – user1741274 2013-02-15 08:09:56

+0

public static final SimpleDateFormat SDF_ISO_DATE = new SimpleDateFormat(「yyyy-MM-dd HH:mm:ss」); public static String formatISODate(long time){ return SDF_ISO_DATE.format(new Date(time)); } – 2013-02-15 08:19:57

+0

當我使用格式「HH:mm:ss.SSSZ」時,我得到10:23:48.000 + 0200。是否有可能獲得Logcat中的格式(如10.26.56.080)中的時間戳。我希望最後一個表示毫秒值。每次調用onSensorChanged()方法時,這些都會有所不同,以便我可以將它用作主鍵值。 @gabi – user1741274 2013-02-15 08:31:02