Date
表示特定的瞬间,精确到毫秒
构造方法
- 无参构造:Date();根据当前的默认毫秒值创建日期对象;
package com.manman.cn;
import java.util.Date;
/*
*Date: 表示特定的瞬间,精确到毫秒
*构造方法:
* Date();无参构造,根据当前的默认;
*
*/
public class DateDemo {
public static void main(String[] args) {
//创建对象
Date de=new Date();
System.out.println("日期是:"+de);
}
}

与当前日期是一样的;
- 根据毫秒值获取当前时间
//创建对象
long time=1000*60*60;
Date de1=new Date(time);
System.out.println("当前的毫秒值是:"+de1);

本来应该是一小时,但是现在是9:00;其实是因为有时区问题,我们是在东八区,所以是时间上加了8个小时;
成员方法
-
public long getTime();获取时间,以毫秒为单位;
package com.manman.cn;
import java.util.Date;
public class DateTest {
public static void main(String[] args) {
//创建对象
Date d=new Date();
//获取时间
long time=d.getTime();
System.out.println(time);
System.out.println(System.currentTimeMillis());
}
}

它是根据当前的时间获取的毫秒值;两次输出差了一秒;
-
public void setTime(long Time);设置时间
//创建对象
Date d=new Date();
//获取时间
long time=d.getTime();
System.out.println(time);
//System.out.println(System.currentTimeMillis());
System.out.println("当前时间是:"+d);
d.setTime(1000);
System.out.println("当前时间是"+d);

DateFormat类
概述
- DateFormat是日期时间格式化子类的抽象类,它以与语言无关的方式格式化并解析日期和时间。
- 是抽象类,所以使用其子类SimpleDateFormat
SimpleDateFormat的构造方法
SimpleDateFprmat()默认格式;
package com.manman.cn;
import java.text.SimpleDateFormat;
import java.util.Date;
/*
* 格式化日期####年##月##日
*/
public class DateFormatDemo {
public static void main(String[] args) {
//创建日期对象
Date de=new Date();
//创建格式化对象
SimpleDateFormat sdf=new SimpleDateFormat();
//调用格式方法
String string =sdf.format(de);
System.out.println(string);
}
}

SimpleDateFprmat(String pattern)给定格式
Date de=new Date();
SimpleDateFormat sdf=new SimpleDateFormat("yyyy年MM月dd日HH:mm:ss");
String ss=sdf.format(de);
System.out.println(ss);

练习题:
- 制作一个工具类DateUtil
package com.manman.cn;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
/*
* 这是日期和字符串相互转换的工具类
* @author
*/
public class DateUtil {
private DateUtil () {
}
public static String dateToString(Date d,String format){
// SimpleDateFormat sdf=new SimpleDateFormat(format);
// return sdf.format(d);
return new SimpleDateFormat(format).format(d);
}
public static Date StringToDate(String s,String format) throws ParseException{
return new SimpleDateFormat(format).parse(s);
}
}
package com.manman.cn;
import java.text.ParseException;
import java.util.Date;
public class DateText {
public static void main(String[] args) throws ParseException {
Date de=new Date();
//yyyy-MM-dd HH:mm:ss
String s=DateUtil.dateToString(de, "yyyy-MM-dd HH:mm:ss");
System.out.println(s);
String s1="2014-12-12";
Date de1=DateUtil.StringToDate(s1,"yyyy-MM-dd");
System.out.println(de1);
}
}

上面一个是工具类,下面是实现类,以后再转换的时候,就不需要在写工具类了,只需要调用即可;
- 算一下你来到这个世界多少天?
package com.manman.cn;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;
/*
* 算一下你来到这个世界多少天?
*/
public class DateDemo1 {
public static void main(String[] args) throws ParseException {
Scanner scanner=new Scanner(System.in);
System.out.println("请输入您的出生年月:");
String line=scanner.nextLine();
//把字符串转换为一个日期
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
Date d=sdf.parse(line);
//通过该日期得到一个毫秒值
long mytime =d.getTime();
//获取当前时间的毫秒值
long nowtime=System.currentTimeMillis();
//毫秒值之差
long time =nowtime-mytime;
//吧毫秒值进行一个转换
int day=(int) (time/1000/60/60/24);
System.out.println("您来到这个世界的天数为:"+day);
}
}
