0

1904 年 1 月 1 日の午前 0 時から経過したミリ秒を表す整数があります。これは Macintosh 時間とも呼ばれます。これは、元の Mac OS で使用される基本時間です。

通常、私は次のようにします:

int millis = 1284543608;
Date date = new Date(millis);
System.out.println(date);

ただし、これは Unix エポックを使用するため、正確な日付は返されません。

Macintosh の時刻から取得したミリ秒を使用して、どのように日付を出力しますか?

4

2 に答える 2

1
    Calendar macEpoch = Calendar.getInstance();
    macEpoch.setTimeInMillis(0);
    macEpoch.set(1904,0, 1, 0, 0, 0);

    //On a mac
    Calendar macTimeForToday = Calendar.getInstance();

    System.out.println("ms since mac epoch: " + macTimeForToday.getTimeInMillis());
    System.out.println("ms since epoch: " + (macTimeForToday.getTimeInMillis() + macEpoch.getTimeInMillis()));

-2082880800000Lに追加すると、翻訳全体が発生することに注意してください。macTime.getTimeInMillis()

于 2013-10-01T10:06:14.607 に答える