我有一个整数,表示自凌晨 12:00 以来经过的毫秒数。 1904 年 1 月 1 日。我相信这也称为麦金塔时间。这是原始 Mac 操作系统使用的基准时间。
通常我会这样做:
int millis = 1284543608;
Date date = new Date(millis);
System.out.println(date);
但是,这使用 Unix 纪元,因此不会返回准确的日期。
如何使用从 Macintosh 时间获取的毫秒数打印日期?
最佳答案
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()
时,整个转换就会发生
关于java - 如何根据 Macintosh 时间打印以毫秒为单位的日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19113151/