java基础教程:常用对象之日期处理类(24)


今天我们要学习的是java当中的日期及其处理。主要内容如下:

Date

Calendar

SimpleDateFormat


第一部分:Date

java当中的日期使用Date类表示,精确到毫秒。

当你需要定义一个日期类型时,可以new 一个Date对象进行表示。例如表示当前时间: new Date();


Date类位于java.util包下,我们看看定义:

public class Date
extends Object
implements Serializable, Cloneable, Comparable<Date>


目前date主要用来表示时间,不做时间的处理(当前参考jdk1.8)。


Date中可用的方法:

before(Date date)是否在某个时间之前

after(Date date)是否在某个时间之后

getTime() 获取从格林威治时间(1970 01 01 0:0:0) 到date对象表示的时间的毫秒差,也就是时间戳。


第二部分:Calendar

我们提到日期,就避免不了时间的一系列的处理和获取操作。如获取星期、月份、年月日,年月日时分秒的增减等等。

但是Date由于设计的原因,不能良好的处理这些问题,所以,java引出了Calendar日历工具类来处理这些问题。


Calendar是java.util包下的一个类,定义如下:

public abstract class Calendar
extends Object
implements Serializable, Cloneable, Comparable<Calendar>


我们来看看Calendar的实例化和方法的使用:

实例化:

Calendar.getInstance();该静态实例方法也可以传入时区(TimeZone),语言(Locale)。


Calendar设置时间:
setTime(Date date); 
set(int Field,int value);其中field可以是年月周日时分秒,如Calendar.YEAR.其中月是从0开始
set(int year,int month,int date)
set(int year,int month,int date,int hour,int minute)
set(int year,int month,int date,int hour,int minute,int second)

Calendar获取时间:

getTime(),返回Date类型。


Calendar可以获取当前时间的年月周日时分秒,get(int field),如
get(Calendar.YEAR),
get(Calendar.DAY_OF_WEEK),
get(Calendar.DAY_OF_MONTH)等等。


Calendar可以对日期进行增减计算:

add(Fileld f, int amount)  

增加时amount为正数,否则为负数


我们看看Calendar在设置和获取时支持的日历字段(Filed)有哪些:

ALL_STYLES(日历类型)

AM(早晨0-12)

AM_PM(中午10-15)

PM(下午12-24 )

DATE(日)

DAY_OF_MONTH(当月第几天)

DAY_OF_WEEK(星期几)

DAY_OF_WEEK_IN_MONTH(当前周是第几周,完全按7天计算)

DAY_OF_YEAR(第几天)

HOUR(小时,0-12)

HOUR_OF_DAY(小时,0-24)

MINUTE(分)

SECOND(秒)

YEAR(年)

MONTH(月,从0开始计算)

WEEK_OF_MONTH(当前周是当月的第几周,按实际周计算)

WEEK_OF_YEAR(当前周是当年的第几周)


第三部分:SimpleDateFormat

有时候我们需要对日期和字符串进行相互转换,这时候就需要使用SimpleDateFormat。


SimpleDateFormat是java.text包下的一个工具类,提供日期和字符串的转换方法。

定义如下:

public class SimpleDateFormat extends DateFormat {}


我们看看实例化和使用:

实例化:
SimpleDateFormat f = new SimpleDateFormat();
SimpleDateFormat f = new SimpleDateFormat(String formatPattern);


formatPattern:日期字符串的格式,如yyyy-MM-dd'T'HH:mm:ss


方法:
applyPattern(String pattern)设置格式化日期的格式
format(Date date)格式日期为字符串
parse(String dateStr)将字符串转为日期


我们用一个例子演示下三个对象的使用:

public class Test {

	public static void main(String[] args) {
		// 1、获取当前时间
		Date date = new Date();

		// 2、获取前一天

		// 2.1、先实例化日历类
		Calendar c = Calendar.getInstance();

		// 2.2、设置要处理的时间
		c.setTime(date);

		// 2.3、日期增减
		c.add(Calendar.DAY_OF_MONTH, -1);

		// 3、获取日期是星期几
		c.get(Calendar.DAY_OF_WEEK);

		// 4、获取日期是当月第几周,从一号起算第一周,7天一个周期
		c.get(Calendar.DAY_OF_WEEK_IN_MONTH);

		// 5、获取日期是当月第几周,获取实际的周
		c.get(Calendar.WEEK_OF_MONTH);

		// 6、获取日期是那个月
		c.get(Calendar.MONTH);

		// 7、获取日期的字符串表达

		// 7.1、先实例化格式化对象
		SimpleDateFormat sdf = new SimpleDateFormat();

		// 7.2、规定格式化格式
		sdf.applyPattern("yyyy-MM-dd HH:mm:ss");

		// 7.3、得到期望的格式的字符串
		String formatStr = sdf.format(date);

		// 7.4、转换字符串为日期
		try {
			Date parseDate = sdf.parse("2017 07 13 11:54:30");
		} catch (ParseException e) {
			e.printStackTrace();
		}
	}

}



以上就是今天的内容:

Date

Calendar

SimpleDateFormat


你学会了吗?



  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值