JAVA中跟时间有关的一些操作

JAVA跟时间有关的一些操作

1.获取当前时间

Date d = new Date();
System.out.println(d);
Sat Feb 22 21:47:58 CST 2020

如上输出的时间不太直观,可以改为如下写法:

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date d = new Date();
System.out.println(sdf.format(d));
运行结果:2020-02-22

SimpleDateFormat sdf = new SimpleDateFormat(“yyyy-MM-dd”);
是设置时间的格式,yyyy代表四位年份,MM是两位月份,dd是两位号数。

2.间隔天数

	String a="1997-06-06";String b="2020-02-22";SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");int day = (int)((sdf.parse(b).getTime() - sdf.parse(a).getTime()) / (1000 * 60 * 60 * 24));System.out.println(day);运行结果:8296

其中getTime() 方法获取毫秒值。

24小时*一小时60分钟*一分钟60秒*一秒1000毫秒。

3.间隔月数

    String a="2019-01-06";String b="2020-02-22";SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");int year1 = sdf.parse(a).getYear();int month1 = sdf.parse(a).getMonth();int year2 = sdf.parse(b).getYear();int month2 = sdf.parse(b).getMonth();int month = year1*12+month1-(year2*12+month2);System.out.println(month);运行结果:13

4.N天前或N天后是几号

   Calendar c1 = Calendar.getInstance();SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd");c1.add(Calendar.DATE, 10);String sj = sdf1.format(c1.getTime());System.out.println(sj);

此处是用到Calendar的add() 方法, void add(int field, int amount):
field是指对哪个时间(年:Calendar.YEAR 月:Calendar.MONTH 日:Calendar.DATE)改变,amount是改变的大小,如果是N天前,amount是负数,如-3就是3天前,N天后就是正数,如3,就是指3天后。

JAVA中跟时间有关的一些操作

JAVA跟时间有关的一些操作

1.获取当前时间

Date d = new Date();
System.out.println(d);
Sat Feb 22 21:47:58 CST 2020

如上输出的时间不太直观,可以改为如下写法:

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date d = new Date();
System.out.println(sdf.format(d));
运行结果:2020-02-22

SimpleDateFormat sdf = new SimpleDateFormat(“yyyy-MM-dd”);
是设置时间的格式,yyyy代表四位年份,MM是两位月份,dd是两位号数。

2.间隔天数

	String a="1997-06-06";String b="2020-02-22";SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");int day = (int)((sdf.parse(b).getTime() - sdf.parse(a).getTime()) / (1000 * 60 * 60 * 24));System.out.println(day);运行结果:8296

其中getTime() 方法获取毫秒值。

24小时*一小时60分钟*一分钟60秒*一秒1000毫秒。

3.间隔月数

    String a="2019-01-06";String b="2020-02-22";SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");int year1 = sdf.parse(a).getYear();int month1 = sdf.parse(a).getMonth();int year2 = sdf.parse(b).getYear();int month2 = sdf.parse(b).getMonth();int month = year1*12+month1-(year2*12+month2);System.out.println(month);运行结果:13

4.N天前或N天后是几号

   Calendar c1 = Calendar.getInstance();SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd");c1.add(Calendar.DATE, 10);String sj = sdf1.format(c1.getTime());System.out.println(sj);

此处是用到Calendar的add() 方法, void add(int field, int amount):
field是指对哪个时间(年:Calendar.YEAR 月:Calendar.MONTH 日:Calendar.DATE)改变,amount是改变的大小,如果是N天前,amount是负数,如-3就是3天前,N天后就是正数,如3,就是指3天后。