Date、DateFormat

Date概述

  Date:表示特定的瞬间,精确到毫秒。 

  构造方法:
        Date():根据当前的默认毫秒值创建日期对象
        Date(long date):根据给定的毫秒值创建日期对象
package cn.itcast_01;

import java.util.Date;

public class DateDemo {
    public static void main(String[] args) {
        // 创建对象
        Date d = new Date();
        System.out.println("d:" + d);

        // 创建对象
        // long time = System.currentTimeMillis();
        long time = 1000 * 60 * 60; // 1小时 跟时区有关
        Date d2 = new Date(time);
        System.out.println("d2:" + d2);
    }
}

/*
    d:Thu Feb 25 15:11:12 CST 2016
    d2:Thu Jan 01 09:00:00 CST 1970  
*/

Date方法

  public long getTime():获取时间,以毫秒为单位
  public void setTime(long time):设置时间

  从Date得到一个毫秒值
        getTime()
  把一个毫秒值转换为Date
        构造方法
        setTime(long time)
package cn.itcast_02;

import java.util.Date;

public class DateDemo {
    public static void main(String[] args) {
        // 创建对象
        Date d = new Date();

        // 获取时间
        long time = d.getTime();
        System.out.println(time);
        // System.out.println(System.currentTimeMillis());

        System.out.println("d:" + d);
        // 设置时间
        d.setTime(1000);
        System.out.println("d:" + d);
    }
}

DateFormat

  Date   --  String(格式化)
        public final String format(Date date)

  String -- Date(解析)
        public Date parse(String source)

  DateForamt:可以进行日期和字符串的格式化和解析,但是由于是抽象类,所以使用具体子类SimpleDateFormat。

  SimpleDateFormat的构造方法:
        SimpleDateFormat():默认模式
        SimpleDateFormat(String pattern):给定的模式
            这个模式字符串该如何写呢?
            通过查看API,我们就找到了对应的模式
            年 y
            月 M 
            日 d
            时 H
            分 m
            秒 s

            2014年12月12日 12:12:12
package cn.itcast_03;

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

public class DateFormatDemo {
    public static void main(String[] args) throws ParseException {
        // Date -- String
        // 创建日期对象
        Date d = new Date();
        // 创建格式化对象
        // SimpleDateFormat sdf = new SimpleDateFormat();
        // 给定模式
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
        // public final String format(Date date)
        String s = sdf.format(d);
        System.out.println(s);


        //String -- Date
        String str = "2008-08-08 12:12:12";
        //在把一个字符串解析为日期的时候,请注意格式必须和给定的字符串格式匹配
        SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        Date dd = sdf2.parse(str);
        System.out.println(dd);
    }
}
/*
    2016年02月25日 15:39:30
    Fri Aug 08 12:12:12 CST 2008
*/

练习题

  算一下你来到这个世界多少天?

  分析:
        A:键盘录入你的出生的年月日
        B:把该字符串转换为一个日期
        C:通过该日期得到一个毫秒值
        D:获取当前时间的毫秒值
        E:用D-C得到一个毫秒值
        F:把E的毫秒值转换为年
            /1000/60/60/24
package cn.itcast_05;

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

public class MyYearOldDemo {
    public static void main(String[] args) throws ParseException {
        // 键盘录入你的出生的年月日
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入你的出生年月日:");
        String line = sc.nextLine();

        // 把该字符串转换为一个日期
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        Date d = sdf.parse(line);

        // 通过该日期得到一个毫秒值
        long myTime = d.getTime();

        // 获取当前时间的毫秒值
        long nowTime = System.currentTimeMillis();

        // 用D-C得到一个毫秒值
        long time = nowTime - myTime;

        // 把E的毫秒值转换为年
        long day = time / 1000 / 60 / 60 / 24;

        System.out.println("你来到这个世界:" + day + "天");
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值