java--System类、Date类、SimpleDateFormat类、Calendar类

System类、Date类、SimpleDateFormat类、Calendar类

System类

  System类包含一些有用的类字段和方法,并且它不能被实例化。
常用方法
public static void gc()调用垃圾回收器
public static void exit(int status)退出java虚拟机,0为正常退出,非0为异常退出
public static long currentTimeMillis()获取当前时间的毫秒值
注:垃圾回收器并不是一调用就会马上执行的,因为程序中的部分代码还可能要用,因此还要等这部分代码结束。

Date类

  类Date表示特定的瞬间,精确到毫秒,它在java.util包下。
构造方法
public Date()实例化一个日期对象
public Date(long date) 把一个long类型的毫秒值转换成一个日期对象
常用方法
public long getTime()获取一个日期对象对象毫秒值
public void setTime(long time)给一个日期对象设置上指定的毫秒值

SimpleDateFormat类

  可以把一个日期对象格式化成一个文本(字符串) , 也可以把一个日期字符串解析成一个日期对象,它在 java.text包下。
构造方法
public SimpleDateFormat()使用默认的模式来创建一个SimpleDateFormat对象
public SimpleDateFormat(String pattern) 使用指定的模式(规则比如yyyy:MM:dd HH:mm:ss)来创建一个SimpleDateFormat对象
常用方法
public String format(Date date)把一个日期对象格式化成一个字符串
public Date parse(String dateStr)把一个日期字符串解析成一个日期对象
注意:要以指定格式解析
规则定义
y
M
d月份中的天数
h一天中的小时数(1~12)
H一天中的小时数(0~23)
m
s
F月份中的星期
W月份中的周数
w年中的周数
D年中的天数
E星期中的天数
aAm/pm 标记
z时区
Z时区

Calendar类

  Calendar 类是一个抽象类,不能直接new对象,可以通过他的一个静态成员方法getInstance()来获取他的对象,它为特定瞬间与一组诸如 YEAR、MONTH、DAY_OF_MONTH、HOUR ,等日历字段之间的转换提供了一些方法,并为操作日历字段(例如获得下星期的日期)提供了一些方法,它在java.util包下。
常用方法
public static Calendar getInstance()使用默认时区和语言环境获得一个日历对象
public int get(int field)获得给定日历字段对应的值,field通过Calendar提供的字段来拿

代码演示

1、获取指定的日期与今天相距多少天
import java.util.Scanner;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class Day {
    public static void main(String[] args) throws ParseException {
       Scanner sc = new Scanner(System.in);
        System.out.println("请日期 格式如2010-11-25:");
        String bir = sc.nextLine();
        
        //SimpleDateFormat指定日期格式
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
        
        //把按日期格式输入的字符串转变为日期类型
        Date date = format.parse(bir);
        
        //获得转变成日期格式的字符串的毫秒值
        long time = date.getTime();
                
        //获取当前的毫秒值
        long now = System.currentTimeMillis();
        
        //因为相减的是毫秒值要把它转变为天数所以要进行计算
        System.out.println("指定的日期与今天相距" + (now - time) / 1000 / 60 / 60 / 24  + "天");
    }
}

结果

请日期 格式如2010-11-25:
2018-10-31
指定的日期与今天相距2天

2、键盘录入任意一个年份,获取任意一年的二月有多少天

import java.util.Calendar;
import java.util.Scanner;
public class Day {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入年份:");
        int y = sc.nextInt();
        //获取 Calendar 对象
        Calendar in = Calendar.getInstance();
        
        //设置年月日,设置成3月1日,因为在这里月份是从0开始的,因此月设置成2
        in.set(y,2,1);
        
        //每一个月的3月1号减去1就是二月了,这样我们就可以获得二月的天数了
        in.add(Calendar.DAY_OF_MONTH,-1);
        
        //获得二月的天数,DAY_OF_MONTH是Calendar的字段
        int i = in.get(Calendar.DAY_OF_MONTH);
        System.out.println(y+"年二月有"+i+"天");
    }
}

结果

请输入年份:
2018
2018年二月有28天

还想知道其他的Calendar字段,可以通过JDK提供的API来查看。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值