首次申请安装时间

Ime*_*iri 2 android android-widget android-emulator android-intent android-layout

我一直试图在android系统中获得某个软件包的第一次安装时间!(第三方应用程序)我使用包信息来获取详细信息,并从中获取FirstInstallTime()方法以获取日期和时间.但它返回一个我不知道转换的日志值!任何人都可以帮助我将此值转换为日期时间值!

谢谢.

Pet*_*ton 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));
}
Run Code Online (Sandbox Code Playgroud)


Pao*_*lli 5

PackageInfo.firstInstallTime为您提供“Unix 时间”中的安装时间(自“纪元”以来的毫秒数,即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();
}
Run Code Online (Sandbox Code Playgroud)

您还可以使用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);
Run Code Online (Sandbox Code Playgroud)