私は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));
}
PackageInfo.firstInstallTimeは、インストール時間を「Unix時間」 ( 「エポック」からのミリ秒単位の時間、つまり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);
それは単に長いものとして保存された日付であり、それから日付を作成するだけの魔法はありません。
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));
}
}