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); 
相关问题