Java Calendar 日期处理 日期加减

概要:

Calendar 类是一个抽象类,它为特定瞬间与一组诸如 YEAR、MONTH、DAY_OF_MONTH、HOUR 等 日历字段之间的转换提供了一些方法,并为操作日历字段(例如获得下星期的日期)提供了一些方法。瞬间可用毫秒值来表示,它是距历元(即格林威治标准时间 1970 年 1 月 1 日的 00:00:00.000,格里高利历)的偏移量。 

| |目录

日期加减

package net.xsoftlab.baike;

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

public class TestCalendar {

	// 使用默认时区和语言环境获得一个日历。
	private static Calendar calendar = Calendar.getInstance();
	private static SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

	public static void print(String name) {
		System.out.print(String.format("%" + ((5 - name.length()) * 3 + name.length()) + "s: ", name));
		System.out.println(format.format(calendar.getTime()));
	}

	public static void main(String[] args) {
		print("当前时间");

		calendar.add(Calendar.HOUR_OF_DAY, 1);
		print("增加1小时");

		calendar.add(Calendar.DAY_OF_MONTH, 1);
		print("增加1天");

		calendar.add(Calendar.MONTH, 1);
		print("增加1个月");

		calendar.add(Calendar.YEAR, 1);
		print("增加1年");

		calendar.add(Calendar.YEAR, -2);
		print("减少2年");
	}
}

获取 2014-03-25 日的日期

说明

GregorianCalendar构造方法参数依次为:年,月-1,日,时,分,秒. 

Java月份是从0-11,月份设置时要减1,

SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Calendar calendar = new GregorianCalendar(2016, 8, 1, 15, 41, 22);
System.out.println(format.format(calendar.getTime()));

获取年、月、日、时、分、秒的方法

Calendar calendar = Calendar.getInstance();
int year = calendar.get(Calendar.YEAR);
// 取月份要加1.
int month = calendar.get(Calendar.MONTH) + 1;
int day = calendar.get(Calendar.DAY_OF_MONTH);
int minute = calendar.get(Calendar.MINUTE);
int seconds = calendar.get(Calendar.SECOND);

获取当前月份的最大天数

Calendar cal = Calendar.getInstance();
int day = cal.getActualMaximum(Calendar.DAY_OF_MONTH);
System.out.println(day);

两个日期相差天数

long millisOfDay = 24 * 60 * 60 * 1000;

Calendar calendar = new GregorianCalendar(2015, 9, 1);
Calendar calendar1 = new GregorianCalendar(2016, 9, 1);
Calendar calendar2 = new GregorianCalendar(2017, 9, 1);

// 2016年是闰年,得到366天
System.out.println((calendar1.getTimeInMillis() - calendar.getTimeInMillis()) / millisOfDay);
// 2017年是平年,得到365天
System.out.println((calendar2.getTimeInMillis() - calendar1.getTimeInMillis()) / millisOfDay);
评论关闭
评论 还能输入200
评论关闭
评论 还能输入200
资料加载中...
已关注 , 取消