日期和时间
取得当前的日期用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);
}
}
输出:
操作日期用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());
}
}
输出: