Java常见对象SimpleDateFormat类-34-概述和练习题

       前面学习了Date这个类,返回的对象是一个毫秒的数字,看起来很不爽。完全不知道是什么具体时间和日期。如果能打印出来“2018年08月08日 08:08:08”这样的格式,那就方便多了,毕竟我们生活中接触的时间日期基本上都差不多是这个类型的,而不是从1970年1月1号到现在的毫秒值。今天学习的SimpleDateFormat能帮我们解决这个时间日期数据装换成更习惯的格式。

1. API基本介绍

      在Java jdk api 1.6文档中搜索找到SimpleDateFormat这个类。第一段第一句话就是:SimpleDateFormat 是一个以与语言环境有关的方式来格式化和解析日期的具体类。它允许进行格式化(日期 -> 文本)、解析(文本 -> 日期)和规范化。说白了就是日期和字符串直接相互转化的功能。它的父类是DateFormat,所以下面代码练习我们会发现有些方法是调用父类的方法实现的。


2. 构造函数和成员方法介绍

      在SimpleDateFormat这个类中,我先来看看时间和日期模式,就是了解为什么yyyy-MM-dd就是表示年月日的格式,下面这张图,完整地解释了每个字母的含义。

     根据上图,我们习惯的时间日期格式可以这样表示“yyyy年MM月dd日 HH:mm:ss”.下面我们代码来演示一下。

1)将时间日期对象转换成字符串

package otherclass;

import java.text.SimpleDateFormat;
import java.util.Date;
 
public class Demo1_SimpleDateFormat {

   public static void main(String[] args) {

      Date dt = new Date(); // 获取当前时间对象

      SimpleDateFormat sdf = new SimpleDateFormat(); //空参构造,创建日期时间格式化类对象

      String time = sdf.format(dt);       //调用父类DateFormat里面的格式化方法。

      System.out.println(time);         //完成时间日期格式转换成字符串 

   }

}

 

输出:

18-4-24 下午10:02

 

那么如何实现我们文章开始说的yyyy年MM月dd日 HH:mm:ss”的时间格式打印出来呢,请看下面代码。

package otherclass;
import java.text.SimpleDateFormat;
import java.util.Date;

public class Demo1_SimpleDateFormat {

   public static void main(String[] args) {

      Datedt = new Date(); // 获取当前时间对象
      SimpleDateFormatsdf= newSimpleDateFormat("yyyy年MM月dd日 HH:mm:ss"); //指定格式化效果
      Stringtime= sdf.format(dt);       //调用父类DateFormat里面的格式化方法。
      System.out.println(time);         //完成时间日期格式转换成字符串 
   }
}

 

输出:20180424 22:05:13

 

 

2)将时间字符串对象转换成时间日期对象

package otherclass;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class Demo1_SimpleDateFormat {

   public static void main(String[] args) throws ParseException {

      // 把下面时间字符串转换成时间日期对象

      Stringstr_time= "2008年08月08日 08:08:08";

      SimpleDateFormatsdf= newSimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");

      Dated = sdf.parse(str_time);     //将时间字符串转换成日期对象

      System.out.println(d);

   }

}

输出:Fri Aug 08 08:08:08 CST 2008

 

相关编程练习题

 

题目:计算你来到这个世界多少天

 

分析:

1)将生日字符串和今天字符串存储在String变量中

2)定义日期格式化对象

3)将日期字符串转换成日期对象

4)通过日期对象获取时间毫秒值

5)将两个毫秒值相减

6)得到5)的结果除以1000.再除以60,再除以60,再除以24得到天

代码实现:

package otherclass;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class Demo1_SimpleDateFormat {

	public static void main(String[] args) throws ParseException {
		//1.出生和今天存储在两个String类型的变量中
		String birthday = "1988年08月08日";
		String today = "2018年04月24日";
		
		//2.定义日期格式化对象
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日"); //这个和上面两个变量格式一致
		
		//3.将日期字符串转换成日期对象
		Date d1 = sdf.parse(birthday);
		Date d2 = sdf.parse(today);
		
		//4.求出毫秒值
		long time = d2.getTime() - d1.getTime();
		
		//5.通过除以不同单位得到天数
		System.out.println(time/1000/60/60/24);
	}
}

输出结果:10851

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值