Date类
Date类是jdk给我们提供的标准日期类,在java.util包下;
package m01d02;
import java.util.Date;
public class TestDate {
public static void main(String[] args) {
Date date=new Date();
System.out.println(date);
}
}
输出结果:
可以获取当前的时间,年月日时分秒都可以;
但是我们发现格式不太符合中国的时间标准;
Calendar类
Calendar是日历类,也是java.util包下的,功能比较强大,能获取到年月日时分秒的具体值;
package m01d02;
import java.util.Calendar;
public class TestCalendar {
public static void main(String[] args) {
Calendar calendar=Calendar.getInstance();
System.out.println("现在是:"+calendar.get(Calendar.YEAR)+"年"
+(calendar.get(Calendar.MONTH)+1)+"月"//注意这里的月是从0开始计数,所以要+1
+calendar.get(Calendar.DAY_OF_MONTH)+"日"
+calendar.get(Calendar.HOUR_OF_DAY)+"时"
+calendar.get(Calendar.MINUTE)+"分"
+calendar.get(Calendar.SECOND)+"秒");
}
}
输出结果:
现在是:2019年1月2日9时58分1秒
SimpleDateFormat类
SimpleDateFormat类主要是用作日期类型转换用的,在java.text包下:
将日期对象转换成字符串;
package m01d02;
import java.text.SimpleDateFormat;
import java.util.Date;
public class TestSimpleDateFormat {
public static void main(String[] args) {
Date date=new Date();
SimpleDateFormat sdf=new SimpleDateFormat("yyyy.MM.dd HH:mm:ss");
SimpleDateFormat sdf1=new SimpleDateFormat("yyyy年MM月dd日HH时mm分ss秒");
System.out.println(sdf.format(date));
System.out.println(sdf1.format(date));
}
}
可以看到 SimpleDateFormat类的构造方法,直接输出时间;
输出结果:
2019.01.02 10:20:46
2019年01月02日10时20分46秒
里面的时间格式可以改动,具体格式:
在实际开发中,我们可以将SimpleDateFormat进行功能类的封装:
package m01d02;
import java.text.SimpleDateFormat;
import java.util.Date;
public class TestSimpleDateFormat {
/**
* 将日期对象转换成字符串
* @param date日期对象
* @param format字符串
* @return
*/
public static String formatDate(Date date,String format){
String result="";
SimpleDateFormat sdf=new SimpleDateFormat(format);
if(date!=null){
result=sdf.format(date);
}
return result;
}
public static void main(String[] args) {
Date date=new Date();
/*SimpleDateFormat sdf=new SimpleDateFormat("yyyy.MM.dd HH:mm:ss");
System.out.println(sdf.format(date));*/
System.out.println(formatDate(date,"yyyy.MM.dd HH:mm:ss"));
System.out.println(formatDate(date,"yyyy-MM-dd"));
System.out.println(formatDate(date,"yyyy年MM月dd日HH时mm分ss秒"));
}
}
我们将date和format进行封装,输出一个字符串,非常方便;
输出结果:
2019.01.02 15:27:24
2019-01-02
2019年01月02日15时27分24秒
还有一个parse类将字符串对象转换成日期对象;
package m01d02;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class TestSimpleDateFormat {
/**
* 将日期对象转换成字符串
* @param date 日期对象
* @param format 字符串
* @return
*/
public static String formatDate(Date date,String format){
String result="";
SimpleDateFormat sdf=new SimpleDateFormat(format);
if(date!=null){
result=sdf.format(date);
}
return result;
}
/**
* 将字符串转换成日期对象
* @param dateStr 字符串
* @param format 日期对象
* @return
* @throws ParseException
*/
public static Date formatStr(String dateStr,String format) throws ParseException{
SimpleDateFormat sdf=new SimpleDateFormat(format);
return sdf.parse(dateStr);
}
public static void main(String[] args) throws ParseException {
Date date=new Date();
/*SimpleDateFormat sdf=new SimpleDateFormat("yyyy.MM.dd HH:mm:ss");
System.out.println(sdf.format(date));*/
System.out.println(formatDate(date,"yyyy.MM.dd HH:mm:ss"));
System.out.println(formatDate(date,"yyyy-MM-dd"));
System.out.println(formatDate(date,"yyyy年MM月dd日HH时mm分ss秒"));
System.out.println("*****************************");
String dateStr="1997.01.05 15:27:24";
//调用formatStr方法,返回一个日期对象
Date date2=formatStr(dateStr,"yyyy.MM.dd HH:mm:ss");
System.out.println(formatDate(date2,"yyyy.MM.dd HH:mm:ss"));
}
}
输出结果:
2019.01.02 16:10:54
2019-01-02
2019年01月02日16时10分54秒
*****************************
1997.01.05 15:27:24
可以看到已经将字符串转换成日期对象了