java中的Date类

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);
        
        
    }
}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容