如何在 Java 中滚动小时和月份

Calendar 类提供 roll() 方法 来调整日期或时间,而无需更改 Java 中的更高字段。例如,您可以滚动月份或小时,同时保持日期的其他部分不变。以下是我们将要实现的不同示例 -

  • 滚动月份和小时

  • 滚动年份和小时

滚动月份和小时

Calendar 类:提供用于操作日期和时间的方法的类。它允许您执行诸如添加、减去或滚动日期和时间之类的操作。

roll() 方法: Calendar 类中的 roll() 方法 会调整指定字段(例如,月份、小时),而不会影响其他字段,例如年份或日期。

步骤

滚动月份和小时的步骤如下:

步骤 1. 创建 Date 对象:初始化 Date 对象以存储当前日期和时间。

Date d1 = new Date();

步骤 2. 创建 Calendar 实例:使用 Calendar 类创建表示当前日期的实例。

Calendar cl = Calendar.getInstance();

步骤 3. 将 Calendar 时间设置为 Date 对象:将 Calendar 对象的时间设置为 Date 对象。

cl.setTime(d1);

示例

以下示例向我们展示了如何使用 calendar 类的 roll() 方法滚动月份(不更改年份)或小时(不更改月份或年份)−

import java.util.*;

public class Main {
   public static void main(String[] args) throws Exception {
      Date d1 = new Date();
      Calendar cl = Calendar. getInstance();
      
      cl.setTime(d1);
      System.out.println("today is "+ d1.toString());
      
      cl. roll(Calendar.MONTH, 100);
      System.out.println("date after a month will be " + cl.getTime().toString() );
      
      cl. roll(Calendar.HOUR, 70);
      System.out.println("date after 7 hrs will be "+ cl.getTime().toString() );
   }
}

输出

today is Mon Jun 22 02:44:36 IST 2009
date after a month will be Thu Oct 22 02:44:36 IST 2009
date after 7 hrs will be Thu Oct 22 00:44:36 IST 2009

滚动年份和小时

Calendar 实例 cal 用于操作当前时间。roll(Calendar.YEAR, false) 方法将年份向下滚动一年,roll(Calendar.HOUR, true) 方法将小时向上滚动一年,从而相应地调整时间而不更改日期、月份或其他字段。

示例

以下是另一个滚动月份的示例 −

import java.util.Calendar;

public class CalendarExample {
   public static void main(String[] args) {
      Calendar cal = Calendar.getInstance();
		System.out.println("Time:" + cal.getTime());
		
      cal.roll(Calendar.YEAR, false);
		System.out.println("Time rolling down the year:" + cal.getTime());
		
      cal.roll(Calendar.HOUR, true);
		System.out.println("Time rolling up the hour:" + cal.getTime());
   }
}

输出

Time:Fri Nov 11 07:01:31 UTC 2016
Time rolling down the year:Wed Nov 11 07:01:31 UTC 2015
Time rolling up the hour:Wed Nov 11 08:01:31 UTC 2015