あなたの質問はあまり明確ではありません (奇妙なハードウェアの問題のように聞こえます)。とにかく、指定した日付からの経過時間をミリ秒単位で追加するだけです。
msOriginal
ミリ秒で指定した日付です。
msElapsed
1970 年以降に経過したミリ秒の合計です。これは年に相当し2012 - 1970 = 42
ます。
msElapsedLeapYears
閏年経過日数の合計です。wikiのうるう年の一覧を見ると、11年あったことがわかります。したがって、11 日間を考慮する必要があります。
上記の 3 つのフィールドの合計により、探している結果が得られます。日付が同じ日に当たらないことに注意してください (3 月 1 日は 2012 年の日曜日ではありません)。同じ日付にしたい場合は、2015 年 (45 年) である必要があります。基本的に、日付が同じ日に当たるには、mod 7 の経過日数が 0 である必要があります。
このサンプル コードは groovy で作成されているため、構文は通常の Java とは少し異なります。
long epoch = 5177706l;
Calendar current = Calendar.getInstance();
current.setTimeInMillis(epoch*1000);
println current.getTime();
long msOriginal = (epoch*1000);
long msElapsed = 42l*365*24l*3600*1000;
long msElapsedLeapYears = 11l*24*3600*1000;
current.setTimeInMillis(msOriginal+msElapsed+msElapsedLeapYears);
println current.getTime();
結果:
Sun Mar 01 16:15:06 CST 1970
Thu Mar 01 16:15:06 CST 2012