JAVA入门—————Date类 AND SimpleDateFormat类 AND Calendar类

Date类

  • 概念:类 Date 表示特定的瞬间,精确到毫秒
  • 构造方法
public Date()
eg:	Date date = new Date();
        System.out.println(date);————输出:Wed Nov 06 11:01:02 CST 2019  星期 月 日 时分秒  年
public Date(long date) ——把一个long类型的毫秒值转换成一个日期对象
eg:	Date date1 = new Date(1000 * 60 * 60 * 24);
        System.out.println(date1);————输出:Fri Jan 02 08:00:00 CST 1970  在计算机元年上加一天
  • 成员方法
public long getTime(): 获取一个日期对象毫秒值

Date----long 的转换——————转换成毫秒值

eg:	获取从1970 0101 0000:00到当前时间的间隔毫秒值
        Date date = new Date();
        long time = date.getTime();————方法一
        System.out.println(time);
        
        long time1 = System.currentTimeMillis();————方法二
        System.out.println(time1);
eg:	Date date1 = new Date();
        long time = date1.getTime();
        System.out.println(time);————得到毫秒值

        Date date2 = new Date();
        date2.getTime();
        System.out.println(date2);————得到当前日期
public void setTime(long time): 给一个日期对象设置上指定的毫秒值

long----Date 的转换—————————转换成日期

eg:	Date date = new Date();
        date.setTime(1000*60*60);————————————在起始元年1970上加一小时
        System.out.println(date);————输出:Thu Jan 01 09:00:00 CST 1970

SimpleDateFormat类

  • 概念:格式化日期 默认格式是:19-11-2 下午1:58
  • 构造方法
public SimpleDateFormat():使用默认的模式来创建一个SimpleDateFormat对象
eg:	Date date = new Date();
		SimpleDateFormat sdf = new SimpleDateFormat();
        String date1 = sdf.format(date);
        System.out.println(date1);——————输出:19-11-6 上午11:50
public SimpleDateFormat(String pattern):使用指定的模式(规则比如yyyy:MM:dd HH:mm:ss)来创建一个SimpleDateFormat对象
eg:	Date date = new Date();
		SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒S毫秒 E");
  • 成员方法
public String format(Date date): 把一个日期对象格式化成一个字符串
eg:	Date date = new Date();
		SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒S毫秒 E");
        String date2 = sdf1.format(date);
        System.out.println(date2);——————输出:20191106115624740毫秒 星期三
public Date parse(String dateStr): 把一个日期字符串解析成一个日期对象 注意要以指定格式解析
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class demo2 {
    public static void main(String[] args) throws ParseException {
        Date date = new Date();
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd  HH:mm:ss");
        String date1 = sdf.format(date);——————获取当前日期字符串
        System.out.println(date1);

        SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd  HH:mm:ss");
        Date date2 = sdf1.parse(date1);——————字符串转化为日期格式
        System.out.println(date2);
    }
}

例题:算一下你在世界上存在了多少年

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

public class Test {
    public static void main(String[] args) throws ParseException {
        /*需求:算一下你来到这个世界多少天 ?
         1.算出 出生那天的毫秒值
         2 .取出当前毫秒值
         3.两个值相减/1000/60/60/24*/

        Scanner sc = new Scanner(System.in);
        System.out.println("请输入你的生日:格式为:2019-11-06");
        String s = sc.nextLine();

        Date birthday = new SimpleDateFormat("yyyy-MM-dd").parse(s);   //将字符串转化为日期格式
        System.out.println("出生日期:"+birthday);

        long birthdayTime = birthday.getTime();// 取生日的毫秒值
        System.out.println("生日的毫秒值:"+birthdayTime);

        long now = System.currentTimeMillis();  // 取当前日期的毫秒值
        System.out.println("现在的毫秒值:"+now);

        System.out.println("你已经在世界上存在了"+((now-birthdayTime)/1000/60/60/24/365)+"年");
    }
}

Calendar类

  • 概念:抽象类,不能直接new对象——通过静态方法获取对象
public static Calendar getInstance()——使用默认时区和语言环境获得一个日历对象
 eg:	Calendar in = Calendar.getInstance();
        System.out.println(in);
public int get(int field)——获得给定日历字段对应的值 field通过Calendar提供的字段来拿
eg:	int year = in.get(Calendar.YEAR);
        int month = in.get(Calendar.MONTH);————————月份从0开始到11
        int day = in.get(Calendar.DAY_OF_MONTH);
        int hour = in.get(Calendar.HOUR_OF_DAY);
        int min = in.get(Calendar.MINUTE);
        int second = in.get(Calendar.SECOND);————输出:年月日时分秒
  • 成员方法
public void add(int field,int amount)——根据日历的规则,为给定的日历字段添加或减去指定的时间量
eg:	Calendar in = Calendar.getInstance();
        in.add(Calendar.MONTH,1);
        System.out.println(in.get(Calendar.MONTH));——————输出:11
        in.add(Calendar.DAY_OF_MONTH,-5);
        System.out.println(in.get(Calendar.DAY_OF_MONTH));——————输出:1
public final void set(int year,int month,int date)——设置日历时间 年月日
eg:	Calendar in = Calendar.getInstance();
        in.set(2019,10,06);  设置年月日
        System.out.println(in.get(Calendar.YEAR));
        in.set(Calendar.YEAR,1999);  设置年(仅为某字段设置值)
        System.out.println(in.get(Calendar.YEAR));————输出:2019  1999

例题:键盘输入某一年份,判断是否为闰年

import java.util.Calendar;
import java.util.Scanner;
public class Test {
    public static void main(String[] args) {
        //键盘录入任意一个年份,获取任意一年的二月有多少天
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入任意一个月份:");
        int year = sc.nextInt();

        Calendar in = Calendar.getInstance();
        in.set(year,2,1);
        in.add(Calendar.DAY_OF_MONTH,-1);
        int m = in.get(Calendar.DAY_OF_MONTH);
        if(m==28){
            System.out.println(year+"是平年   二月有"+m+"天");
        }else{
            System.out.println(year+"是闰年   二月有"+m+"天");
        }
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值