Java之Date基本篇

一直以来对于知识只是拿来,没有经过自己的思考。

 带着问题去思考和学习

1.基本介绍

  在Java8之前,对于日期的操作设计的很复杂,特别是当涉及到日期的计算时,如计算当前时间下45天后最近的一个星期一之类稍复杂的运算,使用Calendar类进行操作将会是令人感到复杂与麻烦的,有兴趣的可以参见常用的时间库Joda-time

2.怎么让String和Date相互转换?

  这里的Date是java.util.Date,当然还有一个 java.sql.Date,这里讲的是前者。

  首先要说明的是DateFormat,这是一个抽象类,平常主要使用到的是它的子类SimpleDateFormat。

  --将String转换成Date,再转换成指定格式的String

@Test
	public void testDateOne() throws ParseException{
		Date date = new SimpleDateFormat("yyyy-MM-dd").parse("2015-06-12");
		String now = new SimpleDateFormat("yyyy年MM月dd日").format(date);
		System.out.println(date+"*****"+now);
	}

  值得注意的是SimpleDateFormat不是线程安全的,内部使用的是同一个Calendar对象,所有这里使用的是不同的匿名SimpleDateFormat对象。

  --格式化Date对象并打印返回的字符串

@Test
	public void testDateTwo(){
		SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd  hh:mm:ss E") ; 
		Date date = new Date();
		System.out.println(format.format(date));
	}

3.常用格式字母代表的意思分别是什么?

字母含义
y
M
D处于一年中所有天的位置
d处于当前月中的天数
H24小时制 如16:00代表下午4点
h12小时制
m
s
S毫秒
E星期几

4.如何对日期进行计算,例如如获取去年的昨天?   

  Calendar的使用方法并不复杂,可以参见这一篇 :Calendar的基础使用可以参考这篇

        //求去年的昨天的日期 并以指定的格式输出
        Calendar ca = Calendar.getInstance();
        Date now = new Date();
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy:MM:dd HH:mm:ss ");
        ca.setTime(now);
        ca.add(Calendar.YEAR, -1);
        ca.add(Calendar.DAY_OF_MONTH, -1);
        System.out.println("here: "+sdf.format(ca.getTime()));

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值