我一直在嘗試獲取android系統中某個包的第一次安裝時間! (第三方應用程序)我使用包信息來獲取詳細信息,並從中獲取日期和時間,FirstInstallTime()方法。但它返回一個我不知道轉換的日誌值!任何人都可以幫助我將這個值轉換爲日期時間值!第一個應用程序安裝時間
謝謝。
我一直在嘗試獲取android系統中某個包的第一次安裝時間! (第三方應用程序)我使用包信息來獲取詳細信息,並從中獲取日期和時間,FirstInstallTime()方法。但它返回一個我不知道轉換的日誌值!任何人都可以幫助我將這個值轉換爲日期時間值!第一個應用程序安裝時間
謝謝。
經典永遠不會過時:)
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));
}
這只是一個長期存儲的日期,沒有魔法只是從它創建一個日期。
Date firstInstallTime = new Date(pInfo.firstInstallTime);
如果越來越長型的時間....請嘗試以下...
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));
}
}
PackageInfo.firstInstallTime給你的安裝時間爲「Unix時間」(自以來的時間(以毫秒爲單位)epo ch「,即1970年1月1日00:00:00 UTC)。您可以使用java.util.Date或java.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);