注明:如果想要看两日期间隔天数,则直接跳到"五";前面为预备知识;
一、需要使用的类
(1)java.util.Date;
(2)java.util.Calendar;
(3)java.util.GregorianCalendar;
(4)java.text.SimpleDateFormat;
二、Date的用途
Date由于基本已经过时,现在所能使用的地方有几点:
(1)获得当前时间:Date date = new Date();
(2)Date和Calendar转换; (后面会讲)
(3)SimpleDateFormat的解析;(后面会讲)
三、Calendar和GregorianCalendar用法
Calendar被广泛使用是因为他能够很容易的取得所需要的属性,比如年、月、日、分、秒、毫秒、星期等;
常见用法:
(1)GregorianCalendar calendar = new GregorianCalendar(); 获得当前时间;
(2)calendar.setTime(Date date); //将date的时间设置到calendar中;
(3)Date calendar.getTime(); //将calendar转成Date类型;
(4)calendar.get(属性); //根据名称获得属性的值;
(5)calendar.getTimeInMillis(); //获得calendar时间的毫秒数; (是求两日期相差天数的关键)
四、SimpleDateFormat
SimpleDateFormat被广泛使用是因为他能够自定义日期显示的格式;
(1)y表示年; yyyy表示四位的年份,比如2011
(2)M表示月; MM表示两位的月份,比如11
(3)d表示天; dd表示两位的天数 ,比如11
常见用法:
(1)SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); //设置日期显示格式为yyyy-MM-dd,比如2011-01-01
(2)Date date = sdf.parse(String str); //将字符串解析为Date类型的日期;比如"2011-01-01"解析成2011-01-01的日期;
(3)String str = sdf.format(Date date); //将日期格式化为字符串;
五、求两日期间隔天数
- packageorg.exam3;
- importjava.text.SimpleDateFormat;
- importjava.util.Date;
- importjava.util.GregorianCalendar;
- importjava.util.Scanner;
- publicclassTest{
- publicstaticvoidmain(String[]args)throwsException{
- Scannerin=newScanner(System.in);
- in.useDelimiter("\n");
- System.out.print("开始时间:");
- Stringstr1=in.next();
- System.out.println("\n结束时间:");
- Stringstr2=in.next();
- SimpleDateFormatsdf=newSimpleDateFormat("yyyy-MM-dd");
- Datedate1=sdf.parse(str1);
- Datedate2=sdf.parse(str2);
- GregorianCalendarcal1=newGregorianCalendar();
- GregorianCalendarcal2=newGregorianCalendar();
- cal1.setTime(date1);
- cal2.setTime(date2);
- <strong>longgap=(cal2.getTimeInMillis()-cal1.getTimeInMillis())/(1000*3600*24);//从间隔毫秒变成间隔天数</strong>
- System.out.println("\n相差"+gap+"天");
- }
- }
useDelimiter
public Scanner useDelimiter(Patternpattern)
- 将此扫描器的分隔模式设置为指定模式。
-
-
参数:
-
pattern- 分隔模式
返回:
- 此扫描器
-
本文介绍如何使用Java中的Date、Calendar及SimpleDateFormat类来获取两个日期之间的间隔天数。具体包括Date的基本使用、Calendar与GregorianCalendar的常见操作、SimpleDateFormat格式化日期的方法以及最终计算日期间隔的完整示例。

5990

被折叠的 条评论
为什么被折叠?



