Date类,Calendar类,DateFormat类,SimpleDateFormat类

本文详细介绍了Java中处理日期和时间的主要类,包括Date、Calendar、DateFormat和SimpleDateFormat的使用方法,展示了如何获取当前时间、格式化日期以及进行日期转换。

一、Date类

Date 类在java.util 包。这个类最主要的作用就是获取当前时间,Calendar类取代了Date 类很多的功能,下面为 Date 类获取当前时间:以默认的英文格式输出日期和时间。

import java.util.*;
public class Example22 {
	public static void main(String[] args) {
		Date date1 = new Date(); // 创建表示当前时间的Date对象
		Date date2 = new Date(60000); // 创建表示时间戳的Date对象,6000表示1970年一月一日00:00:00以来的毫秒数
		System.out.println(date1);
		System.out.println(date2);
	}
}
/*结果:
Sat Jul 22 18:29:23 CST 2017
Thu Jan 01 08:01:00 CST 1970
*/

二、Calendar类

1、java.util.Calendar 类是一个抽象类,可以通过调用 getInstance() 静态方法获取一个 Calendar 对象,此对象已由当前日期时间初始化,即默认代表当前时间,如 Calendar cal = Calendar.getInstance();

2、Calendar类中的常量:

Calendar.YEAR
年份Calendar.SECOND
Calendar.MONTH
月份Calendar.DAY_OF_YEAR
一年的第几天
Calendar.DATE
日期Calendar.DAY_OF_MONTH
一个月的第几天
Calendar.HOUR
12小时制的小时Calendar.DAY_OF_WEEK
星期几
Calendar.MINUTE
分钟Calendar.HOUR_OF_DAY
24小时制的小时

3、Calendar类中的方法主要有如下:

int get(参数):返回指定日历字段的值

void add(参数1,参数2): 为指定的日历字段增加或减去指定的时间量

void set(参数1,参数2.....): 设置某个时间,时间操纵就从设置的那个时间开始。

如下例子

package tcy02;
import java.util.*;
public class Example23 {
	public static void main(String[] args) {
		Calendar cal = Calendar.getInstance(); // 当前时间的对象cal
		int year = cal.get(Calendar.YEAR); // 获取当前年份
		int month = cal.get(Calendar.MONTH) + 1; // 获取当前月份
		int day = cal.get(Calendar.DATE); // 获取当前日
		int h = cal.get(Calendar.HOUR); // 获取时
		int m = cal.get(Calendar.MINUTE); // 获取分
		int s = cal.get(Calendar.SECOND); // 获取秒
		System.out.println("当前时间为:" + year + "/" + month + "/" + day + "/ "
				+ h + "时 " + m + "分 " + s + "秒");
		
		System.out.println("新设置的时间为:2018/6/3");		
		cal.set(2017, 7, 7);//设置时间
		cal.add(Calendar.HOUR, 1000);//设置时间间隔
		//Calendar.YEAR,Calendar.MONTH,Calendar.DATE,Calendar.HOUR,Calendar.MINUTE,Calendar.SECOND
		int year1 = cal.get(Calendar.YEAR);
		int month1 = cal.get(Calendar.MONTH) + 1;
		int day1 = cal.get(Calendar.DATE);
		System.out.println("新设置的时间之后1000小时后的日期为:" + year1 + "年" + month1 + "月" + day1 + "日");		
	}
}
/*
当前时间为:2017/7/22/ 8时 5分 0秒
新设置的时间为:2018/6/3
新设置的时间之后1000小时后的日期为:2017年9月18日
*/

4、Calendar和Date的转化

//Calendar转化为Date
Calendar cal=Calendar.getInstance();
Date date=cal.getTime();

//Calendar转化为Date
Calendar cal=Calendar.getInstance();
Date date=cal.getTime();

三、DateFormat类

Date 类获取的时间是以默认的英文格式输出日期和时间.DateDateFormat类专门用于将日期格式化为字符串或者特定格式显示的字符串转换成一个Date对象。DateFormat类是抽象类,不能被直接实例化,但它提供了静态方法,通过这些方法可以获取DateFormat类的实例对象,并调用其他相应的方法进行操作。

1、DateFormat类中的四个常量:

DateFormat.FULL :  完整格式      2017年7月22日 星期六
DateFormat.LONG:  长格式       2017年7月22日
DateFormat.MEDIUM:  普通格式    2017-7-22 20:26:07
DateFormat.SHORT:  短格式     17-7-22 下午8:26

2、DateFormat类中的方法

package tcy02;
import java.text.*;
import java.util.*;
public class Example26 {
	public static void main(String[] args) {
		Date date = new Date();
		
		//日期格式器对象
		DateFormat format1 = DateFormat.getDateInstance();//默认
		DateFormat fullFormat = DateFormat.getDateInstance(DateFormat.FULL);// Full格式
		DateFormat longFormat = DateFormat.getDateInstance(DateFormat.LONG);// Long格式
		
		DateFormat format2 = DateFormat.getDateTimeInstance();//默认
		DateFormat mediumFormat = DateFormat.getDateTimeInstance(
				DateFormat.MEDIUM, DateFormat.MEDIUM);// medium格式
		DateFormat shortFormat = DateFormat.getDateTimeInstance(
				DateFormat.SHORT, DateFormat.SHORT);// short格式
		
		System.out.println("当前日期 时间的默认格式" + format1.format(date));
		System.out.println("当前日期的完整格式:" + fullFormat.format(date));
		System.out.println("当前日期的长格式:" + longFormat.format(date)+"\n");
		
		System.out.println("当前日期 时间的默认格式" + format2.format(date));
		System.out.println("当前日期 时间的普通格式:" + mediumFormat.format(date));
		System.out.println("当前日期 时间的短格式:" + shortFormat.format(date));
	}
}
/*结果:
	当前日期的完整格式:2017年7月22日 星期六
	当前日期 时间的默认格式2017-7-22
	当前日期的长格式:2017年7月22日

	当前日期 时间的默认格式2017-7-22 20:38:57
	当前日期 时间的普通格式:2017-7-22 20:38:57
	当前日期 时间的短格式:17-7-22 下午8:38
*/


四、SimpleDateFormat类

可以使用 SimpleDateFormat 来对日期时间进行格式化,如可以将日期转换为指定格式的文本,也可将文本转换为日期。

1、可以使用 format() 方法将日期转换为指定格式的文本,将时间转换为指定的格式的字符串

2、可以使用 parse() 方法将文本转换为日期,这两个方法都是DateFormat类中的静态方法,SimpleDateFormat类是DateFormat类中的子类。

// 创建Long格式的DateFormat对象
DateFormat time = DateFormat.getDateInstance(DateFormat.LONG);
String dt="2018年6月3日";
System.out.println(time.parse(dt)); // 将对应格式的字符串解析成Date对象
1,2综合下例:

package tcy02;
import java.text.*;
import java.util.*;
public class Example28 {
	public static void main(String[] args) throws Exception {
		// 创建一个SimpleDateFormat对象
		SimpleDateFormat time1 = new SimpleDateFormat("Gyyyy年MM月dd日");
		SimpleDateFormat time2 = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
		SimpleDateFormat time3 = new SimpleDateFormat("今天是今年的第D天,第w周,这个月的第W周,E,今天的第k个小时");
		// 按SimpleDateFormat对象的日期模板格式化Date对象
		System.out.println(time1.format(new Date()));
		System.out.println(time2.format(new Date()));
		System.out.println(time3.format(new Date())+"\n");
		
		//将字符串解析成Date对象,使用 parse() 方法将文本转换为日期,日期格式为time2
		String dt="2018/6/3 4:30:00";
		System.out.println(time2.parseObject(dt));
	}
}
/*结果:
公元2017年07月22日
2017/07/22 19:21:09
今天是今年的第203天,第29周,这个月的第4周,星期六,今天的第19个小时

Sun Jun 03 04:30:00 CST 2018
*/


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值