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

 输出结果:

Java常用类——Java日期处理类_●  Java基础篇

可以获取当前的时间,年月日时分秒都可以;

但是我们发现格式不太符合中国的时间标准;

 

 

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秒

 里面的时间格式可以改动,具体格式:

Java常用类——Java日期处理类_java编程_02

Java常用类——Java日期处理类_java_03

 

在实际开发中,我们可以将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

可以看到已经将字符串转换成日期对象了