Java Calendar

来自姬鸿昌的知识库
跳到导航 跳到搜索
import org.junit.jupiter.api.Test;

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.TimeZone;

public class CalendarTest {

    @Test
    public void test() {
        long currentTimeMillis = System.currentTimeMillis();
        long quotient = currentTimeMillis / Integer.MAX_VALUE;
        long remainder = currentTimeMillis % Integer.MAX_VALUE;
        int remainderInt = (int) remainder;

        Calendar calendar = Calendar.getInstance();
        calendar.setTimeInMillis(currentTimeMillis);

        TimeZone timeZone = calendar.getTimeZone();
        System.out.println(timeZone);

        for (int i = 0; i < quotient; i++) {
            calendar.add(Calendar.MILLISECOND, -Integer.MAX_VALUE);
        }
        calendar.add(Calendar.MILLISECOND, -remainderInt);

        Date date = calendar.getTime();

        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
        String s = simpleDateFormat.format(date);

        System.out.println(s);

    }

}

输出:

sun.util.calendar.ZoneInfo[id="Asia/Shanghai",offset=28800000,dstSavings=0,useDaylight=false,transitions=31,lastRule=null]
1970-01-01 08:00:00.000

差8小时是因为中国是东8区