Java--日期类

Date类

  • 表示现在的时间,精确到毫秒
  • 构造方法:public Date()
    public Date(long date) //把一个long类型的毫秒值转换成一个日期对象
  • 成员方法:
    • public long getTime() 获取一个日期对象的毫米值
    • public void setTime(long time) 给一个日期对象设置上指定的毫秒值
  • 演示:

import java.util.Date;

public class Test3 {
    public static void main(String[] args) {
        Date date = new Date();
        System.out.println(date);//打印现在的时间Mon Nov 04 21:53:57 CST 2019
        //Date-->long
        long time = date.getTime();//返回这个对象距1970-01-01-00:00:00的毫秒数
        System.out.println(time);//1572875691527
        //long-->Date
        date.setTime(1572875691527l);//把这个毫秒数赋给日期对象
        System.out.println(date);//Mon Nov 04 21:54:51 CST 2019
        Date date1 = new Date(1572875691527l);//Date类中的构造方法可以直接把毫秒数所指的日期赋给日期对象
        System.out.println(date1);//Mon Nov 04 21:54:51 CST 2019
    }
}

SimpleDateFormat类

  • SimpleDateFormat类可以实现日期对象格式化为一个字符串,也可以把一个日期字符串转为日期对象
  • 构造方法:public SimpleDateFormat():使用默认的模式来创建一个SimpleDateFormat对象
    public SimpleDateFormat(String pattern):使用指定的模式(规则比如yyyy:MM:dd HH:mm:ss)来创建一个SimpleDateFormat对象
  • 定义规则:
    • y----年
    • M----月
    • d----天
    • H----时
    • m----分
    • s----秒
  • 成员方法:public String format(Date date): 把一个日期对象格式化成一个字符串
    public Date parse(String dateStr): 把一个日期字符串解析成一个日期对象 注意要以指定格式解析
  • 演示:
 //如果我们要指定日期字符串的格式,就要在生成SimpleDateFormat时传入参数
        SimpleDateFormat dateFormat1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//不传入日期格式将会使用默认格式
        String s1 = dateFormat1.format(date2);
        System.out.println(s1);//2019-11-05 11:07:06
        Date parse = dateFormat1.parse("2019-11-05 11:07:06");
        System.out.println(parse);//Tue Nov 05 11:07:06 CST 2019
  • 演示:计算你出生到现在多少天了
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;

public class Test4 {
    public static void main(String[] args) throws ParseException {
        //需求:算一下你来到这个世界多少天 ?
        //先规定用户输入日期格式
        //把输入的日期转换为毫秒,再把今天的日期转为毫秒,然后相减
        Scanner sc = new Scanner(System.in);
        System.out.println("输入你的生日,格式为xxxx-xx-xx");
        String s = sc.nextLine();
        String regex="[0-9]{4}-[0-9]{2}-[0-9]{2}";//使用正则表达式规范用户的输入
        if (s.matches(regex)){
            SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
            Date parse = dateFormat.parse(s);
            long time = parse.getTime();//1970年到出生的时间
            Date now = new Date();//记录现在的时间
            long nowTime = now.getTime();
            long day=(nowTime-time)/1000/60/60/24;
            System.out.println(day);
        }
        else
            System.out.println("输入的日期格式不正确");
    }
}

  • 演示任意一个2月有多少天:
import java.util.Calendar;
import java.util.Scanner;

public class Test2 {
    public static void main(String[] args) {
               /* A:
        案例演示
        需求:键盘录入任意一个年份,获取任意一年的二月有多少天*/

        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入一个年份");
        int year = scanner.nextInt();
        Calendar calendar = Calendar.getInstance();//获取一个日历对象
        calendar.set(year,2,1);//月数为0-11
        calendar.add(Calendar.DAY_OF_MONTH,-1);//给日历添加或减去一个量
        int day = calendar.get(Calendar.DAY_OF_MONTH);
        System.out.println(day);
    }
}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值