Java日期和时间

日期和时间

取得当前的日期用Date

import java.util.Date;
    public class DateTest {

        public static void main(String[] args) {
            //完整的日期与时间:%tc
            String s = String.format("%tc", new Date());
            System.out.println(s);

            //只有时间:%tr
            s = String.format("%tr", new Date());
            System.out.println(s);

            //周、月、日:%tA %tB %td
            Date today = new Date();
            s = String.format("%tA %tB %td", today, today, today);
            System.out.println(s);

            //不用重复给参数
            s = String.format("%tA %<tB %<td", today);
            System.out.println(s);
        }

}

输出:

Date

操作日期用Calendar

取得继承过Calendar的对象

Calendar的实例无法取得,但是可以取得它的具体子类的实例:

Calendar cal = Calendar.getInstance();

运用Calendar对象

几个关键概念:

  • 字段会保存状态:Calendar对象使用许多字段来表示某些事物的最终状态,也就是日期和时间。
  • 日期和时间可以运算:Calendar的方法能够让你对不同的字段做加法或减法的运算,比如说对month字段加一个月。
  • 日期与时间可以用millisecond来表示:Calendar可以让你将日期转换成微秒的表示法,或将微秒转换成日期。(相对于1970.1.1的微秒数),因此可以执行精确的相对计算。

运用Calendar对象:

import java.util.Calendar;
public class CalendarTest {

    public static void main(String[] args) {
        Calendar c = Calendar.getInstance();
        c.set(2017,8,8,16,27);
        long day1 = c.getTimeInMillis();
        day1 += 1000 * 60 * 60;
        c.setTimeInMillis(day1);
        System.out.println("New hour " + c.get(c.HOUR_OF_DAY));
        c.add(c.DATE, 35);
        System.out.println("add 35 days " + c.getTime());
        c.roll(c.DATE, 35);
        System.out.println("roll 35 days " + c.getTime());    
        c.set(c.DATE, 1);
        System.out.println("set to 1 " + c.getTime());

    }

}

输出:

Calendar

常用的Calendar方法、字段