一 Date 类
在程序开发中,经常需要处理日期和时间的相关数据,此时我们可以使用 java.util 包中的Date类。这个类最主要的作用就是获取当前时间,使用Date类代表当前系统时间:使用Date类的默认构造方法创建出来的对象就代表当前的时间,由于Date类覆盖了toString()方法。所以可以直接输出Date类型的对象,我们来看下Date的类的使用:
Date d=new Date();//使用默认的构造方法创建Date对象
System.out.println(d);//输出Date对象
使用Date类的默认无参构造方法创建出的对象就代表当前时间,我们可以直接输出Date对象显示当前的时间,显示的架构如下:Fri Apr 24 13:57:05 CST 2015 Fri 代表 星期五,Apr代表四月, 24 代表 24号 CST 代表 中国标准时间也就是北京时间,东八区。
1 Date 类使用之Date代表当前时间
使用Date类代表当前系统时间:使用Date类的默认构造方法创建出来的对象就代表当前的时间,由于Date类覆盖了toString()方法。所以可以直接输出Date类型的对象
Date date = new Date();
System.out.println(date);
输出 :Sun Aug 28 10:23:06 CST 2016
2 Date 类使用之Date代表指定时间
使用Date类代表指定时间:使用带参的构造方法,可以构造指定日期的Date类对象,Date类中年份的参数应该是实际需要代表的年份减去1900,实际需要代表的月份减去1以后的值。
Date date = new Date(2016-1900,8-1,28);
System.out.println(date);
输出 :Sun Aug 28 00:00:00 CST 2016 代表的日期就是2016年8月28号
从上面的输出结果中,我们发现,默认的时间格式不是很友好(也不是我们想要显示的),此时我们就用到了 java.text 包中的 SimpledDateFormat 类 大显身手了,可以使用 SimpleDateFormat 来对日期时间进行格式化,如可以将日期装换为指定格式的文本,也可将文本转换为日期。
二 SimpleDateFormat类
使用 Date 和 SimpleDateFormat 类表示时间。Date类的默认时间格式不友好,可以使用 SimpleDateFormat 来对日期时间进行格式化,如可以将日期转换为指定格式的文本,也可将文本转换为日期。 SimpleDateFormat类常用parse()和format()两种方法可以进行时间格式格式化。parse()和format()两种方法是有区别的,parse()返回的是一个Date类型(系统日期格式)数据,format返回的是一个StringBuffer类型(文本格式)的数据。
1 parse()方法
SimpleDateFormat中的parse方法可以把String型的字符串转换成特定格式的Date类型(日期类型) 即 字符串 -> Date类型
使用步骤:
1.创建日期格式的字符串
String day="2015年04月24日 14:13:50";
2.创建SimpleDateFomat对象,指定字符串的日期格式
SimpleDateFormat df=new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
3.调用 parse() 方法,将字符串转换为日期
Date d=df.parse(day);
4.输出
System.out.println("当前时间:"+d);
5.结果
Fri Apr 24 14:13:50 CST 2015
如下例:
String str = "2013-01-21 15:10:20";
Date date = null;
SimpleDateFormat sdf = new SimpleDateFormat("yyyy.MM.dd-HH:mm:ss");
try {
date = sdf.parse(str);
} catch (ParseException e) {
System.out.println(e.getMessage());
}
System.out.println(date); //输出指定日期
System.out.println(date.getTime()); //输出指定日期 距离 xxx 的毫秒数
2 format()方法
SimpleDateFormat中的format方法可以把Date型的字符串转换成特定格式的String类型 即 Date类型 -> 字符串
使用步骤:
1.创建Date对象,便是当前时间
Date d = new Date();
2.创建 SimpleDateFormat 对象,指定目标格式
SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm");
3.调用format()方法,格式化时间,转换为指定格式字符串
String today = sdf.format(d);
4.输出转换后的字符串
System.out.println(today);
5.结果是 : 2014-06-11 09:55:48
如下例:
String str = "2013-01-21 15:10:20";
Date date = null;
SimpleDateFormat dateformat=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss ");
String a=dateformat.format(new Date());
System.out.println("时间:"+a);
3 日期时间格式与毫秒数的相互转换
输入日期 转换为 毫秒数,使用Date方法
// 先用SimpleDateFormat.parse() 方法将日期字符串转化为目标Date格式,通过Date.getTime()方法,将其转化为毫秒数
String date = "2017-06-27 15-20-00";
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH-mm-ss");//24小时制
// SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd hh-mm-ss");//12小时制
long time = simpleDateFormat.parse(date).getTime();
System.out.println(time);
输出 : 121456789..... 当前时间毫秒数