java calendar 加减_Java Calendar详解 - 创建、获取、转换、日期加减

Java Calendar详解 - 创建、获取、转换、日期加减

## 创建

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

```java

// 使用当前时间创建

Calendar calendar = Calendar.getInstance();

// 设置指定日期,月份需要减一

calendar.set(year, month - 1, day);

// 指定时间创建,参数依次为:年,月,日,时,分,秒,月份需要减一

Calendar calendar = new GregorianCalendar(2016, 8, 1, 15, 41, 22);

// Date转换为Calendar

Calendar calendar = Calendar.getInstance();

calendar.setTime(date);

```

## 获取

### 获取年、月、日、时、分、秒、星期

```java

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 hover = calendar.get(Calendar.HOUR_OF_DAY);

int minute = calendar.get(Calendar.MINUTE);

int seconds = calendar.get(Calendar.SECOND);

// 1-7分别代表 -- 星期日,星期一,星期二,星期三,星期四,星期五,星期六

int week = calendar.get(calendar.DAY_OF_WEEK);

```

### 获取当前月份的最大天数

```java

Calendar.getInstance().getActualMaximum(Calendar.DAY_OF_MONTH);

```

## 操作

### Calendar 转换为Date

```java

Date date = Calendar.getInstance().getTime();

```

### 日期加减

```java

public class TestCalendar {

// 使用默认时区和语言环境获得一个日历。

private static Calendar calendar = Calendar.getInstance();

public static void print(String name) {

System.out.print(name + ": ");

System.out.println(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").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年 ");

}

}

```

### 两个日期相差天数

```java

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);

```

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值