2

我一直在嘗試獲取android系統中某個包的第一次安裝時間! (第三方應用程序)我使用包信息來獲取詳細信息,並從中獲取日期和時間,FirstInstallTime()方法。但它返回一個我不知道轉換的日誌值!任何人都可以幫助我將這個值轉換爲日期時間值!第一個應用程序安裝時間

謝謝。

回答

5

經典永遠不會過時:)

private String getDateTime() { 
    // get date time in custom format 
    SimpleDateFormat sdf = new SimpleDateFormat("[yyyy/MM/dd - HH:mm:ss]"); 
    return sdf.format(new Date(appInfo.firstInstallTime)); 
} 
2

這只是一個長期存儲的日期,沒有魔法只是從它創建一個日期。

Date firstInstallTime = new Date(pInfo.firstInstallTime); 
0

如果越來越長型的時間....請嘗試以下...

public class Chk { 
public static void main(String[] args){ 

    Long l = System.currentTimeMillis(); 
    System.out.println("Time in long: "+l); 

    System.out.println(new Date(l)); 

    } 

} 
2

PackageInfo.firstInstallTime給你的安裝時間爲「Unix時間」(自以來的時間(以毫秒爲單位)epo ch「,即1970年1月1日00:00:00 UTC)。您可以使用java.util.Datejava.text.DateFormat來格式化此時間。

private static final String TAG = "MyActivity"; 

... 
packageName = ... 
... 

try { 
    PackageInfo packageInfo = pm.getPackageInfo(packageName, PackageManager.GET_PERMISSIONS); 

    Date installTime = new Date(packageInfo.firstInstallTime); 
    Log.d(TAG, "Installed: " + installTime.toString()); 

    Date updateTime = new Date(packageInfo.lastUpdateTime); 
    Log.d(TAG, "Updated: " + updateTime.toString()); 
} 
catch (PackageManager.NameNotFoundException e) { 
    e.printStackTrace(); 
} 

您還可以用java.text.SimpleDateFormat更改日期格式。

SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 

String installTime = dateFormat.format(new Date(packageInfo.firstInstallTime)); 
Log.d(TAG, "Installed: " + installTime); 

String updateTime = dateFormat.format(new Date(packageInfo.lastUpdateTime)); 
Log.d(TAG, "Updated: " + updateTime); 
相關問題